优秀的编程知识分享平台

网站首页 > 技术文章 正文

碎片时间学编程「206]:JavaScript 属性可枚举性

nanyue 2024-10-04 18:20:15 技术文章 13 ℃

JavaScript 属性可枚举性


在大多数情况下,对象属性默认是可枚举的,除非它们是 Symbols。这意味着您可以使用 for...in 循环来迭代对象的属性。同样,可枚举属性出现在枚举对象属性的对象方法中。这方面的一个例子是 Object.keys() 方法,它将忽略不可枚举的属性。最后,当使用对象展开运算符 (...) 时,只有可枚举的属性会被复制到新对象中。


JavaScript

const person = {  name: 'John',  surname: 'Doe',  age: 30,  socialSecurityNumber: '123-45-6789',};
Object.defineProperty(person, 'socialSecurityNumber', {  enumerable: false,});
person.hasOwnProperty('socialSecurityNumber'); // trueperson.propertyIsEnumerable('socialSecurityNumber'); // false
Object.keys(person); // ['name', 'surname', 'age']Object.getOwnPropertyNames(person);// ['name', 'surname', 'age', 'socialSecurityNumber']
const clone = { ...person };clone.socialSecurityNumber; // undefined


要创建不可枚举的属性,您可以将 Object.defineProperty() 与适当的描述符一起使用。您可以使用 Object.prototype.hasOwnProperty() 检查属性是否存在,使用 Object.prototype.propertyIsEnumerable() 检查其可枚举性。此外,与 Symbols 不同,使用 Object.getOwnPropertyNames() 时会显示不可枚举的属性。

更多内容请访问我的网站:https://www.icoderoad.com

最近发表
标签列表