Spec-Zone.ru › JavaScript

Reflect.deleteProperty()

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

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

Статический метод Reflect.deleteProperty() похож на оператор delete, но представлен в виде функции. Он удаляет свойство из объекта.

Попробовать

const object = {
  foo: 42,
};

Reflect.deleteProperty(object, "foo");

console.log(object.foo);
// Expected output: undefined

const array = [1, 2, 3, 4, 5];
Reflect.deleteProperty(array, "3");

console.log(array);
// Expected output: Array [1, 2, 3, <1 empty slot>, 5]

Синтаксис

Reflect.deleteProperty(target, propertyKey)

Параметры

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

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

Логическое значение, указывающее, было ли свойство успешно удалено.

Исключения

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

Описание

Reflect.deleteProperty() обеспечивает рефлексивную семантику оператора delete. То есть Reflect.deleteProperty(target, propertyKey) семантически эквивалентен следующему:

delete target.propertyKey;

На очень низком уровне удаление свойства возвращает логическое значение (как в случае с обработчиком прокси). Reflect.deleteProperty() напрямую возвращает статус, в то время как delete вызовет TypeError в строгом режиме, если статус равен false. В нестрогом режиме delete и Reflect.deleteProperty() имеют одинаковое поведение.

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

Примеры

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

const obj = { x: 1, y: 2 };
Reflect.deleteProperty(obj, "x"); // true
console.log(obj); // { y: 2 }

const arr = [1, 2, 3, 4, 5];
Reflect.deleteProperty(arr, "3"); // true
console.log(arr); // [1, 2, 3, <1 empty slot>, 5]

// Returns true if no such property exists
Reflect.deleteProperty({}, "foo"); // true

// Returns false if a property is unconfigurable
Reflect.deleteProperty(Object.freeze({ foo: 1 }), "foo"); // false

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

Спецификация
Спецификация языка ECMAScript® 2027
# sec-reflect.deleteproperty

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

Десктопные Мобильные Серверные
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
deleteProperty
49
12
42
36
10
49
42
36
10
5.0
49
10
1.0.0
1.0
6.0.0

См. также

  • Полифил Reflect.deleteProperty в core-js
  • Reflect
  • delete
  • handler.deleteProperty()

© 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/deleteProperty

Spec-Zone.ru

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