当使用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