JS数据属性与存取器属性

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,反之则不可

你可能感兴趣的:(JS数据属性与存取器属性)