defineProperty 定义属性
Object.defineProperty(对象,属性值,{
value:''//属性值
writable: false ,// 是否可更改
enumerable:false, //是否枚举
configurable:false// 是否可删 以及是否允许修改第三个属性里面的特性 false 不允许修改
});
var obj = {
id:1,
name:'bob',
};
Object.defineProperty(obj,'name',{ //修改属性可枚举是因为obj对象自带的
value:'sunny'
})
Object.defineProperty(obj,'color',{ //添加属性不可枚举 因为enumerable属性默认为false
value:'red'
})
Object.defineProperty(obj,'id',{
writable:false //无法更改ID
})
Object.defineProperty(obj,'address',{
value:'浙江杭州',
enumerable:false //无法遍历 false为默认值
})
Object.keys(obj); // ['id', 'name'] 返回属性名组成的数组