一、freeze
Object.freeze()
方法可以冻结(浅冻结 )
一个对象,冻结指的是不能向这个对象添加新的属性(增)
,不能修改其已有属性的值(改)
,不能删除已有属性(删)
,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。该方法返回传递的对象,而不是创建一个被冻结的副本 。
1 | // 浅冻结 |
注:通过Object.isFrozen(obj)
可以判断对象是否被冻结
二、seal
Object.seal()
方法封闭一个对象,阻止添加新属性并将所有现有属性标记为不可配置。当前属性的值只要可写就可以改变。
注:不会影响从原型链上继承的属性。但 __proto__
属性的值不能通过对象直接修改。
三、preventExtensions
Object.preventExtensions()
方法让一个对象变的不可扩展,也就是永远不能再添加新的属性。
注:Object.preventExtensions()
仅阻止添加自身的属性。但属性仍然可以添加到对象原型 。