Proxy.revocable()
Метод Proxy.revocable()
используется, чтобы создать отменяемый Proxy
объект.
Синтаксис
Proxy.revocable(target, handler);
Параметры
Возвращаемое значение
Создаётся и возвращается отменяемый Proxy
объект.
Описание
Отменяемый Proxy
- объект со следующими двумя свойствами {proxy: proxy, revoke: revoke}
.
proxy
-
Объект
Proxy
, созданный с помощью вызоваnew Proxy(target, handler)
. revoke
-
Функция, не принимающая аргументов, которая сделает недействительным (выключит)
proxy
.
Если вызовется функция revoke()
, proxy
становится неиспользуемым: Любой proxy
-перехватчик событий объекта будет вызывать исключение TypeError
. Как только proxy
отменена, она останется отменённой и дальше, и может быть собрана сборщиком мусора. Повторный вызов revoke()
не будет иметь никакого эффекта.
Примеры
js
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 |
---|
ECMAScript Language Specification # sec-proxy.revocable |
Совместимость браузерами
BCD tables only load in the browser