标签搜索

Objict属性操作

cicaba
2018-04-12 / 0 评论 / 2 阅读 / 正在检测是否收录...

属性的描述
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()

  1. in 检查对象属性是否在对象及prototype中.
  2. hasOwnProperty 检查对象属性是否在对象不检查原型链.
  var Obj = {};
  (a in Obj)//false
  Obj.hasOwnProperty('a')//false
0

评论 (0)

取消