对象:无序属性的集合。其属性可以包含基本值、对象或函数。
属性类型:
1.数据属性(4个特性):
Configurable:表示能否通过delete删除属性,从而重新定义属性;能够修改属性,能否把特性修改为访问器属性。默认:true。
Enumberable:表示能够通过for-in枚举。默认true。
Value:值,默认undefined。
Writable:能否修改属性值,默认true。
修改属性默认特性方法:
Object.defineProperty()。例如:
var person={};
Object.defineProperty(Person,”name”,{
writable:false,
value:”jack”
});
configurable设置为false之后不能改为true。
2.访问器属性(4个特性):
Configurable
Enumberable
get:读取属性时调用,默认undefined。
set:写入属性时调用,默认undefined。
例如:
Object.defineProperty(Person,”name”{
get:function(){return this._name;},
set:function(){this._name=newValue;}
});
定义多个属性:
Object.defineProperties(),例如:
Object.defineProperties(book,{
name:{
writable:true
},
edition:{
writable:true
}
});
读取属性特性:
Object.getOwnPropertyDescriptor():两个参数:属性所在对象和要读取其描述符属性的名称。返回一个对象,含有4个属性的特性。