Object对象的JavaScript seal()方法的用法

69 阅读1分钟

找出所有关于Object对象的JavaScript seal()方法的信息

Object对象的JavaScript seal()方法接受一个对象作为参数,并返回同一个对象。作为参数传递的对象被突变了,它现在是一个不接受新属性的对象。新的属性不能被添加,现有的属性也不能被删除,但是现有的属性可以被改变。

例子。

const dog = {}
dog.breed = 'Siberian Husky'
Object.seal(dog)
dog.breed = 'Pug'
dog.name = 'Roger' //TypeError: Cannot add property name, object is not extensible

作为参数传递的参数也作为参数返回,因此dog ===myDog (它是完全相同的对象)。

类似于 Object.freeze()但不会使属性变得不可写。在只防止添加或删除属性。

类似于 Object.preventExtensions()但也不允许删除属性。

const dog = {}
dog.breed = 'Siberian Husky'
dog.name = 'Roger'
Object.seal(dog)
delete dog.name //TypeError: Cannot delete property 'name' of #<Object>