javascript对象3个属性特征

JavaScript中的对象是一种复合数据类型,它由属性构成。在JavaScript中,对象具有以下三个属性特征:

  1. 可枚举性(Enumerable)

可枚举性决定了对象的属性能否被 for...in 语句枚举。可枚举性的值可以是 true 或 false,默认值为 true。

示例1:

const obj = {a: 1, b: 2};
Object.defineProperty(obj, 'b', {enumerable: false});
for(let prop in obj) {
    console.log(prop); //a
}

上述代码中,b属性被设置为不可枚举,for...in语句只会枚举可枚举的属性a。

  1. 可配置性(Configurable)

可配置性决定了对象的属性能否被删除和属性特性能否被修改。可配置性的值可以是 true 或 false,默认值为 true。

示例2:

const obj = {a: 1};
Object.defineProperty(obj, 'a', {configurable: false});
delete obj.a; //无法删除
Object.defineProperty(obj, 'a', {enumerable: false}); //失败,因为configurable为false

上述代码中,a属性被设置为不可配置,所以无法删除,也无法重新定义属性特性。

  1. 可写性(Writable)

可写性决定了对象的属性能否被赋值。可写性的值可以是 true 或 false,默认值为 true。

示例3:

const obj = {a: 1};
Object.defineProperty(obj, 'a', {writable: false});
obj.a = 2; //赋值失败,因为writable为false

上述代码中,a属性被设置为不可写,所以赋值操作失败。

除了上述三个属性特征以外,还有一个对象属性特征是值属性特征(Value Property),决定了对象的属性的默认值。值属性特征没有可配置性、可枚举性和可写性这些属性特征。

综上所述,JavaScript对象的属性特征是一种非常重要的操作对象属性的方式,开发者可以通过控制属性特征实现对象属性的灵活管理。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:javascript对象3个属性特征 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题

    在一个JS文件里远程调用jQuery.js会在IE8下出现一个奇怪问题,这个问题是由于jQuery.js本身的一个问题导致的。具体的解决方法如下: 问题原因 在IE8浏览器中,如果将jQuery.js脚本文件远程加载到一个JS文件中,会发生jQuery.js文件无法执行的问题。这是由于IE8浏览器的安全设置对ActiveXObject对象的访问做了限制,导致…

    JavaScript 2023年5月27日
    00
  • 使用JS location实现搜索框历史记录功能

    有一种常见的搜索框历史记录功能是,当用户在搜索框中输入关键字后,网站会记录这个关键字,并在搜索框下方显示搜索历史记录,用户可以快速选择历史记录中的关键字再次进行搜索。 实现这个功能可以使用JS中的location对象。以下是实现搜索框历史记录功能的详细步骤: 1. 监听搜索框的输入事件 首先,需要在搜索框上添加事件监听器,监听搜索框的输入事件。当用户在搜索框…

    JavaScript 2023年6月11日
    00
  • JavaScript 基础问答 四

    JavaScript 基础问答 四攻略 JavaScript 基础问答 四主要涉及到数组的相关知识,以下是本题的完整攻略。 1. 如何将一个多维数组进行扁平化处理? 扁平化处理是将多维数组变成一维数组的过程。可以通过循环递归的方式来实现。 function flatten(arr) { var resultArr = []; for (var i = 0; …

    JavaScript 2023年5月18日
    00
  • JavaScript中常用的验证reg

    下面是详细讲解“JavaScript中常用的验证reg”的完整攻略。 正则表达式简介 正则表达式是一种描述性的语言,用于描述字符的模式匹配的规则。它通常被用于搜索、替换操作以及表单验证等场景中。 JavaScript中的正则表达式被表示为一个正则表达式对象,可以通过RegExp()构造函数创建。正则表达式对象包括一个模式和一些标记,用于指定匹配的方式。 基本…

    JavaScript 2023年6月10日
    00
  • js中setTimeout的妙用–防止循环超时

    下面是关于 setTimeout 防止循环超时的详细攻略。 原理 在 JavaScript 中,循环时如果耗时过长就可能导致页面卡顿或者浏览器崩溃。为了避免这种情况,可以使用 setTimeout 函数来将循环分批进行处理,从而降低其对页面性能的影响。 setTimeout 函数用于在延时一定时间后执行指定的函数,可以接受两个参数,分别是要执行的函数和延迟的…

    JavaScript 2023年5月28日
    00
  • JavaScript前后端JSON使用方法教程

    以下是”JavaScript前后端JSON使用方法教程”的完整攻略: 前言 在Web开发中,JSON是一个重要的数据交换格式。在JavaScript中,我们经常需要使用JSON来进行数据解析、数据交换、以及与后端交互等操作。因此,本篇文章主要介绍了JavaScript前后端JSON使用方法。 JavaScript读取JSON数据 JavaScript提供了p…

    JavaScript 2023年5月27日
    00
  • JS URL传中文参数引发的乱码问题

    当JS程序需要将中文参数作为URL请求的一部分时,往往会引发“乱码”的问题。 造成该问题的原因是:URL中只能包含某些预定义的字符,例如字母、数字和少数几个符号。如果我们需要处理的中文字符没有被编码成它们应该代表的URL编码序列,那么这些字符就可能不能被正确地识别和使用。 接下来,我们将提供两种针对此问题的攻略: 攻略1:使用encodeURI和decode…

    JavaScript 2023年5月20日
    00
  • js的写法基础分析

    我很乐意为你详细讲解“js的写法基础分析”的完整攻略。 标题 JS的写法基础分析 简介 在本篇文章中,你将学到JS的基础写法,包含变量定义、函数定义以及条件判断与循环等内容。同时,文章会使用两个实例帮助你更好地理解JS的写法基础。 变量定义 在JS中,变量定义是非常重要的基础内容。定义变量时,我们需要遵循以下规则: 变量的名称必须以字母、下划线或美元符号开头…

    JavaScript 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部