1、數據屬性與訪問器屬性、定義多個屬性
var object = new Object();
Object.defineProperty({
object,
"key",
{
configurable:true,
writable:trune,
value:'value',
enumrable:true,
}
});
//configurable true可以用delete刪除,false不可刪除,不可繼續設置
//writable,true可寫
//value設置值
//enumrable是否能在for in中遍歷
//defineProperty瀏覽器支持
Object.defineProperty(object,"key",{
get:function(){...},
set:function(value){this.xxx=xxx....}
})
//Object的getter和setter方法
Object.defineProperty(object,{
key1:{writable:...},
key2:{value:....}
})
//Object同時定義多個屬性
2、讀取屬性的特性與應用
var object = {
key1:'key1'
}
var key1Descriptor = Object.getOwnPropertyDescriptor(object,"key1");
key1Descriptor.value = ....;
//瀏覽器的支持請 IE9+ FF4+ Safari5+ Opera12+ Chrome
Object.getOwnPropertyDescriptor的應用在裝飾器中有介紹。