方法一:
实现方法:ES5为对象提供了一个方法:Object.preventExtensions(yourObjName)
后果:一旦使用了上述方法的对象,再篡改对象属性时,在非严格模式下,静默失败,严格模式下会抛出错误。
方法二:
实现原理:将对象的defineProperty()属性变为false,密封后,增加属性—>属性值为undefined(即:被忽略),删 除属性—>依然可以访问该属性(即:被忽略),在严格模式下,增删密封对象属性都会抛出错误。
实现方法:Object.seal(yourObjName)
检验是否被密封:Object.isSealed(yourObjName)
方法三:
特点:冻结的对象既不可扩展,也是密封的,对象的writable属性设置为false
实现方法:Object.freeze(yourObjName)
检测是否被冻结:Object.isFrozen(yourObjName)