以对象属性的6个特性为基础
1. 不可扩展对象
Object.preventExtensions()
- 不能给对象添加属性和方法
Object.isExtensible()
- 确定对象是否可以扩展。
2. 密封的对象
- 不可扩展
- 已有成员不可配置
- 不能删除属性和方法
- 不能把数据属性修改为访问器属性,或者相反
- 属性值可以修改
Object.seal()
: 密封对象Object.isSealed()
:确定对象是否被密封
3. 冻结的对象
- 不可扩展
- 密封的
- 属性值不能修改
- 定义[[set]]函数,访问器属性仍然可写
Object.freeze()
: 冻结对象