JavaScript学习笔记(六)防篡改对象

1. 不可扩展对象

可写,可删除,不可新增

Object.preventExtensions(obj)
Object.isExtensible(obj)

2. 密封对象

可写,不可删除,不可新增, [[Configurable]]设置为false

Object.seal(obj)
Object.isSealed(obj)

3. 冻结对象

不可写,不可删除,不可新增, [[Configurable]]设置为false, [[Writable]]为false

Object.freeze(obj)
Object.isFrozen(obj)

 

扩展:

对象属性的[[Configurable]]特性为false时,表示不能再用Object.defineProperty(obj, prop, descriptor)修改对象属性的特性了。

对象属性的特性描述:

{
  value: 任意类型的值, //
  enumerable: Boolean, // 是否可枚举(for...in或Object.keys())
  configurable: Boolean, // 是否可以删除目标属性或是否可以再次修改属性的特性
  writable: Boolean // 属性值是否可以重写
}

 

posted @ 2019-04-26 21:46  zhoulixue  阅读(226)  评论(0编辑  收藏  举报