1.常见形式
var obj = {
a:5,//数据属性
get b(){return this.a+1},//存取器(寄存器)属性
set b(value){this.a=value}
}
2. 属性特性
数据属性有4个特性:value,writable,enumerable,configurable
存取器有4个特性:get,set,enumerable,configurable(前两个为函数,且set接收一个参数)
3.常用方法
Object.getOwnPropertyDescriptor(obj,'a') 获取对象某个属性的描述符
Object.defineProperty(obj,'b',{...4个特性...}) 定义某个对象的具有特性的属性
Object.defineProperties(obj,{'b':{...4个特性...},'c':{...4个特性...}}) 定义某个对象的具有特性的属性
4.注意事项
1.writable设置为false并且configurable为true时仍可以用Object.defineProperty来更改value
2.configurable设置为false,仍可将writable和enumerable从true改成false,反之则不可