1.Object.create(prototype[,descriptors]) 创建一个对象。
**2.Object.defineProperty(O,Prop,descriptor)/Object.defineProperties(O,descriptors) **
descriptor 是 property的更多描述,可以用一组键值对表示;
Object.defineProperty(o,'age', {
value: 24, //值
writable: true, //是否只读
enumerable: true, //是否可枚举(for in)
configurable: true //是否可删除
});
/*或者可以同时定义多个属性*/
Object.defineProperties(o, {
'age': {
value: 24,
writable: true,
enumerable: true,
configurable: true
},
'sex': {
value: 'male',
writable: false,
enumerable: false,
configurable: false
}
});
3.Object.getOwnPropertyDescriptor(O,property) 获取设置的property的特性
4.Object.getOwnPropertyNames 获取所有属性名,返回数组
5.Object.keys() 获取所有可枚举的属性,返回数组
6.Object.preventExtensions(O) 锁住,使该对象不能增加新属性,但是仍可更改和删除
7.Object.seal(O) 密封,不能增加也不能删除属性,但仍可更改
8.Object.freeze(O) 冻住,不能增加、删除、修改,所有属性writable 全部设为false。