Метод JavaScript seal() объекта Object принимает объект в качестве аргумента и возвращает тот же объект. Объект, переданный в качестве аргумента, видоизменяется, и теперь это объект, который не будет принимать новые свойства. Новые свойства не могут быть добавлены, а существующие свойства не могут быть удалены, но существующие свойства могут быть изменены.
Пример:
const dog = {}
dog.breed = 'Siberian Husky'
Object.seal(dog)
dog.breed = 'Pug'
dog.name = 'Roger' //TypeError: Cannot add property name, object is not extensible
Аргумент, переданный в качестве аргумента, также возвращается в качестве аргумента, следовательно собака == = Моя собака (это точно такой же объект).
Аналогично 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 #Оригинал: “https://flaviocopes.com/javascript-object-seal/”