前言:我去年七月写在简,发现在后端和React中也有所体现。我觉得有必要分享到微信上。注意:一旦对象被定义为防篡改,就无法撤销。1.不可扩展的对象扩展是指可以给对象添加属性和方法。使用Object.preventExtensions(object)防止对象扩展leta={name:'chen'}Object.preventExtensions(a)a.age=18console.log(a.age)//undefineddeletea.nameconsole.log(a)//{}注意:(1)在严格模式下,不是undefined而是报错。(2)已有的对象属性可以删除或修改,但不能增加新的属性使用Object.isExtensible(object)判断一个对象是否可扩展console.log(Object.isExtensible(a))//false2.密封对象(sealedobject)注意:(1)sealedobject不能扩展,所以可以用Object.isExtensible(object)来判断(2)可以修改,不能删除已经存在的属性,不能增加新的属性Object.seal(a)a.age=20deletea.nameconsole.log(a.name)//chena.name='ch'console.log(a.name)//ch使用Object.isSealed(object)来判断是否密封3.冻结对象(frozenobject)冻结对象是最严格的防篡改级别,既不可扩展也不可密封,没有可修改的属性。使用Object.freeze(object)冻结对象对于JS库作者来说,冻结对象可以防止有人修改库的核心对象。(超过)
