普通对象的遍历:
var obj = {
name: 'luoxijie',
age: 21,
school: '西南石油大学',
};
// address是不可枚举属性
Object.defineProperty(obj, 'address', {
value: '成都',
// 默认是不可枚举,即enumerable为false
enumerable: true,
// 默认是不会被delete,即configurable为false
configurable: true,
// 默认不可修改,即writable为false
writable: true,
});
obj.address = '四川成都';
// 只可以遍历可枚举属性
for (const key in obj) {
if (Object.hasOwnProperty.call(obj, key)) {
const element = obj[key];
console.log(key + ': ' + element);
}
}
console.log(Object.keys(obj).length); // 4 address去掉enumerable属性后为3
delete obj.address; // 删除对象的某一个属性(属性要可以被删除)
delete obj.school; // 直接创建的对象的属性可以被删除
console.log(obj.address); //undefined 已经被删除了