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类属性
对象的类属性是一个字符串,用以表示 对象的类型信息。