Object.defineProperty定義物件屬性
阿新 • • 發佈:2018-10-31
Object.defineProperty()
方法會直接在一個物件上定義一個新屬性,或者修改一個物件的現有屬性, 並返回這個物件。
語法:
Object.defineProperty(obj, prop, descriptor)
引數:
obj
要在其上定義屬性的物件。
prop
要定義或修改的屬性的名稱。
descriptor
將被定義或修改的屬性描述符。
value:屬性值
writable:是否可寫
enumerable:是否可列舉
Configurable:表示能否通過delete刪除屬性從而重新定義屬性
var p = {name: 'zxr'}; Object.defineProperty(p,'name',{ configurable: false, enumerable: true, writable: false });
Object.defineProperties(物件, 屬性); //可以定義修改多個屬性
var o=new Object(); Object.defineProperties(o,{ a:{value:100, writable:false //是否可寫 }, b:{ value:200 }, h:{ get:function(){ return 180; }, set:function(val){ alert(val); } } }); alert(o.b); //200 alert(o.h); //輸出180 o.h=123; //輸出123(值一變化就觸發set函式)