防止对象被修改
ES5提供了几个方法来防止对象被修改
- 防止扩展
- 密封
- 冻结
防止扩展 禁止为对象添加属性和方法,但是已经存在的属性和方法可以被修改删除 Object.preventExtension() //将对象设置禁止扩展 Object.isExtension() //对象是否被设置了禁止扩展 示例: var person={ age:20 } Object.perventExtension(person); person.name=’Tom’ //报错,上面设置了不能扩展
密封 类似‘防止扩展’,并且不能删除已经存在的属性和方法,可以修改 Object.seal() Object.isSealed()
冻结 类似‘密封’,但是不能删除,不能修改,只能读取 Object.freeze() Object.isFrozen()