JS面向對象程序設計--對象屬性

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的應用在裝飾器中有介紹。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章