--- title: Proxy.revocable() slug: Web/JavaScript/Reference/Global_Objects/Proxy/revocable tags: - ECMAScript 2015 - JavaScript - Proxy - метод translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/revocable ---
Метод Proxy.revocable()
используется, чтобы создать отменяемый {{jsxref("Proxy")}} объект.
Proxy.revocable(target, handler);
Создаётся и возвращается отменяемый Proxy
объект.
Отменяемый Proxy
- объект со следующими двумя свойствами {proxy: proxy, revoke: revoke}
.
proxy
Proxy
, созданный с помощью вызова new Proxy(target, handler)
.revoke
proxy
.Если вызовется функция revoke()
, proxy
становится неиспользуемым: Любой proxy
-перехватчик событий объекта будет вызывать исключение {{jsxref("TypeError")}}. Как только proxy
отменена, она останется отменённой и дальше, и может быть собрана сборщиком мусора. Повторный вызов revoke()
не будет иметь никакого эффекта.
var revocable = Proxy.revocable({}, { get: function(target, name) { return "[[" + name + "]]"; } }); var proxy = revocable.proxy; console.log(proxy.foo); // "[[foo]]" revocable.revoke(); console.log(proxy.foo); // Вызвано исключение TypeError proxy.foo = 1 // TypeError снова delete proxy.foo; // Всё ещё TypeError typeof proxy // "object", typeof не вызывает никаких proxy-перехватчиков событий
Specification | Status | Comment |
---|---|---|
{{SpecName('ES2015', '#sec-proxy.revocable', 'Proxy Revocation Functions')}} | {{Spec2('ES2015')}} | Изначальное определение. |
{{SpecName('ESDraft', '#sec-proxy.revocable', 'Proxy Revocation Functions')}} | {{Spec2('ESDraft')}} |
{{Compat("javascript.builtins.Proxy.revocable")}}