JavaScript中的不可枚举属性是什么,如何创建?

不可数财产

当使用Object.keys()for ... in循环遍历特定对象时,对象可以具有不显示的属性这些类型的属性称为不可枚举的属性。

创建一个不可枚举的属性

要创建不可枚举的属性,我们必须使用Object.defineProperty()方法。这是在对象中创建不可枚举属性的一种特殊方法。 

在下面的示例中,正常创建了三个属性,如名称,年龄和国家,并使用Object.defineProperty()方法创建了名为“ salary”的属性,并将名为enumerable的键分配了false。当使用Object.keys()迭代对象“ person”时,将显示诸如名称,年龄和国家/地区的属性,而无法显示属性“ salary”。由于薪金财产无法显示,因此被称为不可枚举财产。这是创建不可枚举属性的方法。

Object.defineProperty() 还可让您创建只读属性,如下所示,我们无法修改人员对象的薪水值。要使salary属性可枚举,请将true分配给名为enumerable键 

示例

<html>
<body>
<script>
   var person = {
      name: 'gopal'
   };
   person.age = '21';
   person['country'] = 'India';
   Object.defineProperty(person, 'salary',{
      value : '80,000$',
      enumerable: false
   })
   document.write(Object.keys(person));
</script>
</body>
</html>

输出结果
name,age,country