1.常見形式
var obj = {
a:5,//數(shù)據(jù)屬性
get b(){return this.a+1},//存取器(寄存器)屬性
set b(value){this.a=value}
}
2. 屬性特性
數(shù)據(jù)屬性有4個(gè)特性:value,writable,enumerable,configurable
存取器有4個(gè)特性:get,set,enumerable,configurable(前兩個(gè)為函數(shù),且set接收一個(gè)參數(shù))
3.常用方法
Object.getOwnPropertyDescriptor(obj,'a') 獲取對(duì)象某個(gè)屬性的描述符
Object.defineProperty(obj,'b',{...4個(gè)特性...}) 定義某個(gè)對(duì)象的具有特性的屬性
Object.defineProperties(obj,{'b':{...4個(gè)特性...},'c':{...4個(gè)特性...}}) 定義某個(gè)對(duì)象的具有特性的屬性
4.注意事項(xiàng)
1.writable設(shè)置為false并且configurable為true時(shí)仍可以用Object.defineProperty來更改value
2.configurable設(shè)置為false,仍可將writable和enumerable從true改成false,反之則不可