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的应用在装饰器中有介绍。