第六章 對象-javaScript權威指南第六版(四)
6.6 屬性getter和setter
對象屬性是由名字、值和一組特性(attribute)構成的。
getter和setter定義的屬性稱做"存取器屬性"(accessor propterty)
var o={
data_prop:value,
get accessor_prop(){函數體};
set accessor_prop(a) {函數體};
}
讀o.accessor_prop
寫o.accessor_prop=value;
6.7 屬性的特性
數據屬性的4個特性分別是它的:
值(value)
可寫性(writable)
可枚舉(enumerable)
可配置性(configurable)
存取器屬性的4個特性是
get
set
enumerable
configurable
getOwnPropertyDescriptor()
Object.getOwnPropertyDescriptor(x,"a")
result: Object {value: 1, writable: true, enumerable: true, configurable: true}
var o={};
Object.defineProperty(o,"x",{ value:1,
writable:true,
enumerable:false,
configurable:true
});
Object.defineProperties({},{x:{value:1,writable:true,enumerable:true,configurable:true},
y:{value:1,writable:true,enumerable:true,configurable;true}});
gettert和setter的老式API
__lookupGetter__()
__lookupSetter__()
__defineGetter__()
__defineSetter__()
Object.getPrototypeOf(y) 返回y的原型。
6.8 對象的三個屬性
原型 (prototype)
類(class)
可擴展性(extensible attribute)
6.8.1 原型屬性
可以用isPrototypeOf 是否繼承於那一個原型。
6.8.2類屬性
對象的類屬性是一個字符串,用以表示 對象的類型信息。
第六章 對象-javaScript權威指南第六版(四)