Перевод не завершен. Пожалуйста, помогите перевести эту статью с английского.

Метод handler.deleteProperty() является "ловушкой" (функция-перехватчик) для оператора delete.

Синтаксис

var p = new Proxy(target, {
  deleteProperty: function(target, property) {
  }
});

Параметры

Следующие параметры передаются в метод deleteProperty.

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

this в момент вызова ссылается на объект handler.

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

Метод deleteProperty должен возвращать Boolean. Значение true, если свойство было успешно удалено, в противном случае false.

Описание

Метод handler.deleteProperty() является "ловушкой" для оператора delete.

Перехваты

Данная "ловушка" может перехватывать следующие операции:

Инварианты

Если следующие инварианты нарушены, то прокси выдаст ошибку 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 Latest Draft (ECMA-262)
Определение '[[Delete]]' в этой спецификации.
Черновик  

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

Update compatibility data on GitHub
КомпьютерыМобильныеServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome для AndroidEdge MobileFirefox для AndroidOpera для AndroidSafari on iOSSamsung InternetNode.js
deletePropertyChrome Полная поддержка 49Edge Полная поддержка 12Firefox Полная поддержка 18IE Нет поддержки НетOpera Полная поддержка 36Safari Полная поддержка 10WebView Android Полная поддержка 49Chrome Android Полная поддержка 49Edge Mobile Полная поддержка ДаFirefox Android Полная поддержка 18Opera Android Полная поддержка 36Safari iOS Полная поддержка 10Samsung Internet Android Полная поддержка 5.0nodejs Полная поддержка 6.0.0

Легенда

Полная поддержка  
Полная поддержка
Нет поддержки  
Нет поддержки

Смотри также

Метки документа и участники

Метки: 
Внесли вклад в эту страницу: mdnwebdocs-bot, smlkA
Обновлялась последний раз: mdnwebdocs-bot,