Spec-Zone.ru › JavaScript

Reflect.preventExtensions()

Базовый уровень Широко доступно

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.

Статический метод Reflect.preventExtensions() похож на Object.preventExtensions(). Он запрещает добавление новых свойств в объект (т. е. предотвращает будущие расширения объекта).

Попробовать

const object = {};

console.log(Reflect.isExtensible(object));
// Expected output: true

Reflect.preventExtensions(object);

console.log(Reflect.isExtensible(object));
// Expected output: false

Синтаксис

Reflect.preventExtensions(target)

Параметры

target
Целевой объект, для которого нужно запретить расширения.

Возвращаемое значение

Значение Boolean, указывающее, был ли целевой объект успешно настроен на предотвращение расширений.

Исключения

TypeError
Выбрасывается, если target не является объектом.

Описание

Reflect.preventExtensions() предоставляет рефлексивную семантику предотвращения расширений объекта. Отличия от Object.preventExtensions():

  • Reflect.preventExtensions() выбрасывает TypeError, если целевой объект не является объектом, в то время как Object.preventExtensions() всегда возвращает не-объекты без изменений.
  • Reflect.preventExtensions() возвращает Boolean, указывающий, был ли целевой объект успешно настроен на предотвращение расширений, в то время как Object.preventExtensions() возвращает целевой объект.

Reflect.preventExtensions() вызывает [[PreventExtensions]] внутренний метод объекта объекта target.

Примеры

Использование Reflect.preventExtensions()

См. также Object.preventExtensions().

// Objects are extensible by default.
const empty = {};
Reflect.isExtensible(empty); // true

// … but that can be changed.
Reflect.preventExtensions(empty);
Reflect.isExtensible(empty); // false

Отличие от Object.preventExtensions()

Если аргумент target этого метода не является объектом (примитивом), то это вызовет TypeError. В случае с Object.preventExtensions(), не-объект target будет возвращен как есть, без каких-либо ошибок.

Reflect.preventExtensions(1);
// TypeError: 1 is not an object

Object.preventExtensions(1);
// 1

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-reflect.preventextensions

Совместимость с браузерами

Десктоп Мобильные Сервер
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
preventExtensions
49
12
42
36
10
49
42
36
10
5.0
49
10
1.0.0
1.0
6.0.0

См. также

  • Полифил Reflect.preventExtensions в core-js
  • Reflect
  • Object.preventExtensions()
  • handler.preventExtensions()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/preventExtensions

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API