对象(defineProperty)方法

39 阅读1分钟

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'] 返回属性名组成的数组