在 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}
广告