Метод JavaScript Object.seal () запечатывает данный объект.
В seal()
методе предотвращает новые свойства от быть добавлены к объекту и отмечают все существующие свойства , как не-настраиваемые.
Синтаксис seal()
метода:
Object.seal(obj)
Этот seal()
статический метод вызывается по имени Object
класса.
seal () Параметры
seal()
Метод принимает в:
- obj - объект, который должен быть запечатан.
Возвращаемое значение из seal ()
- Возвращает запечатанный объект.
Пример: использование seal ()
let obj = ( foo: "bar", func: function () (), ); // before sealing, properties can be added, modified, or removed obj.foo = "JavaScript"; obj.value = 5; delete obj.func; // sealing the object o = Object.seal(obj); // can still change property values obj.foo = "bar1"; // no other change // fails silently obj.foo1 = "bar"; delete obj.foo; console.log(obj); // ( foo: 'bar1', value: 5 ) // cannot convert data property to accessors or vice versa Object.defineProperty(obj, "foo", ( get: function () ( return "g"; ), )); // TypeError Cannot redefine property: foo
Вывод
(foo: 'bar1', значение: 5) TypeError Невозможно переопределить свойство: foo
Примечания :
- По умолчанию объекты являются расширяемыми (к ним можно добавлять новые свойства). Запечатывание объектов делает свойства объектов фиксированными и неизменяемыми. Значения существующих свойств могут быть изменены, пока они доступны для записи.
Object.isSealed()
может использоваться, чтобы проверить, запломбирован ли объект или нет.- Попытка преобразовать свойство данных в метод доступа или наоборот потерпит неудачу или выбросит
TypeError
.
Рекомендуемая литература: объект JavaScript isSealed ()