handler.deleteProperty()
Метод handler.deleteProperty()
является "ловушкой" (функция-перехватчик) для оператора delete
.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
Синтаксис
var p = new Proxy(target, {
deleteProperty: function(target, property) {
}
});
Параметры
Следующие параметры передаются в метод deleteProperty
.
target
- Целевой объект.
property
- Имя или
Symbol
свойства, которое нужно удалить.
this
в момент вызова ссылается на объект handler.
Возвращаемое значение
Метод deleteProperty
должен возвращать Boolean
. Значение true
, если свойство было успешно удалено, в противном случае false
.
Описание
Метод handler.deleteProperty()
является "ловушкой" для оператора delete
.
Перехваты
Данная "ловушка" может перехватывать следующие операции:
- Удаление свойства:
delete proxy[foo]
anddelete proxy.foo
Reflect.deleteProperty()
Инварианты
Если следующие инварианты нарушены, то прокси выдаст ошибку TypeError
:
- Свойство не может быть удалено, если оно неконфигурируемое собственное свойство целевого объекта.
Примеры
Следующий код перехватывает действие оператора delete
.
var p = new Proxy({}, {
deleteProperty: function(target, prop) {
if (prop in target){
delete target[prop]
console.log('property removed: ' + prop)
return true
}
else {
console.log('property not found: ' + prop)
return false
}
}
})
var result
p.a = 10
console.log('a' in p) // true
result = delete p.a // "property removed: a"
console.log(result) // true
console.log('a' in p) // false
result = delete p.a // "property not found: a"
console.log(result) // false
Спецификации
Specification | Status | Comment |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) Определение '[[Delete]]' в этой спецификации. |
Стандарт | Initial definition. |
ECMAScript (ECMA-262) Определение '[[Delete]]' в этой спецификации. |
Живой стандарт |
Совместимость с браузерами
BCD tables only load in the browser
Смотри также
Proxy
handler
delete
operatorReflect.deleteProperty()