属性的描述
Object.defineProperty(..)修改或新增对象的属性的描述.
let Obj = {};
Object.defineProperty(Obj,a,{
value:2,
writable:true,//可写
enumerable:true,//可枚举
configurable:true//可配置(值为false时对象属性将不可删除,writable可以从true改为false)
})
禁止扩展
Object.preventExtensions();禁止添加新属性.
密封
及不能添加也不能删除对象属性.
Object.seal();
冻结
及不可修改,不可添加,不可新增属性.
Object.freeze();
如果这个对象引用了其他对象, freeze不会生效.
“深度冻结”一个对象,具体方法为,首先在这个对象上调用 Object.freeze(..),
然后遍历它引用的所有对象并在这些对象上调用 Object.freeze(..)。但是一定要小心,因
为这样做有可能会在无意中冻结其他(共享)对象。
in 操作符和hasOwnProperty()
- in 检查对象属性是否在对象及prototype中.
- hasOwnProperty 检查对象属性是否在对象不检查原型链.
var Obj = {};
(a in Obj)//false
Obj.hasOwnProperty('a')//false
评论 (0)