Object.defineProperty() 设置某一个对象中的某一个属性的原始特性
Object.defineProperties()一次设置对象的多个属性的特性值
Object.getOwnPropertyDescriptor()查询对象的某一属性的特性值
var obj = {
name:'zhangsan',
age:12,
sex:'男'
}
//Object.defineProperty 设置某一个对象中的某一个属性的原始特性
Object.defineProperty(obj,'name',{
configurable:false, //不能被删除,默认为true可以被删除
enumerable:false,//不可枚举,不会展示出来,但是存在
writable:false, //不可以被改变
value:'lisi'
})
//一次设置对象的多个属性的特性值Object.defineProperties()
var res = Object.defineProperties(obj,{
age:{
configurable:false //不可删除
},
sex:{
configurable:false //不可删除
}
})
//查询对象的某一属性的特性值Object.getOwnPropertyDescriptor()
var res = Object.getOwnPropertyDescriptor(obj,'name');
console.log(res);
console.log(obj);
console.log(obj.name);
obj.name = 'xiaoming' //不会修改,无效句
delete obj.name //不会修改,无效句
for (var k in obj){
console.log(obj[k]); //不会遍历到name的值
}
运行结果