在 JavaScript 对象中定义属性时,“enumerable”(可枚举)属性的重要性是什么?


我们可以使用方括号表示法来定义对象的属性。还有一种方法可以使用名为Object.defineProperty()的属性来定义属性。它通常需要三个参数:对象名、属性名和属性描述符。

语法

Object.defineProperty(object name, property name, property descriptor)

让我们用这种方法定义一个属性。

示例

在下面的示例中,最初,对象只有一个名为“one”的属性。后来,又添加了一个名为“two”的属性。现在,当我们尝试显示所有属性时,只显示了第一个属性,而没有显示添加的属性,如输出所示。

在线演示

<html>
<body>
<script>
   var object = {one: 1};
   Object.defineProperty(
      object,
      'two', {
         value: 2
       }
   );
   document.write(JSON.stringify(object));
</script>
</body>
</html>

输出

{"one":1}

这都是因为“enumerable”(可枚举)属性。“enumerable”属性必须为 true 才能在对象中定义属性。但是,如果未声明,“enumerable”的值为“false”。因此,要使该值为“true”,我们必须声明“enumerable”并为其赋值“true”。

在下面的示例中,当“enumerable”被初始化并赋值为true时,所有属性都将显示,如输出所示。

示例

在线演示

<html>
<body>
<script>
   var object = {one: 1};
  Object.defineProperty(
   object,
   'two', {
      value: 2,
      enumerable: true
   }
);
document.write(JSON.stringify(object));
</script>
</body>
</html>

输出

{"one":1,"two":2}

更新于:2020年6月29日

245 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告