《JavaScript高级程序设计》读书笔记22.2防篡改对象

以对象属性的6个特性为基础

1. 不可扩展对象

  • Object.preventExtensions()
    • 不能给对象添加属性和方法
  • Object.isExtensible()
    • 确定对象是否可以扩展。

2. 密封的对象

  • 不可扩展
  • 已有成员不可配置
    • 不能删除属性和方法
    • 不能把数据属性修改为访问器属性,或者相反
    • 属性值可以修改
  • Object.seal(): 密封对象
  • Object.isSealed():确定对象是否被密封

3. 冻结的对象

  • 不可扩展
  • 密封的
  • 属性值不能修改
  • 定义[[set]]函数,访问器属性仍然可写
  • Object.freeze(): 冻结对象
liborn wechat
欢迎您扫一扫上面的微信二维码,订阅我的公众号!