Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since декабрь 2017 г..
Статический метод Proxy.revocable() создаёт подлежащий отзыву объект Proxy.
Целевой объект для оборачивания в Proxy. Это может быть любой объект (массив, функция или даже другой прокси).
handlerОбъект, свойства которого являются функциями, которые определяют поведение proxy, когда с ним происходит действие.
Обычный объект с двумя свойствами:
proxyПрокси объект, идентичный создаваемому с помощью вызова new Proxy(target, handler).
revokeФункция без параметров для отзыва (выключения) proxy.
Фабричная функция Proxy.revocable() это то же самое, что конструктор Proxy(), но в дополнение к созданию прокси объекта она создаёт функцию revoke, которая может быть вызвана для отмены прокси. Прокси объект и функция revoke оборачиваются в обычный объект.
Функция revoke не принимает параметров и не зависит от значения this. Созданный объект proxy прикрепляется к функции revoke в виде приватного свойства, к которому функция revoke обращается при вызове (приватное свойство незаметно извне, но оно влияет на то, как происходит сбор мусора). Объект proxy не попадает в замыкание функции revoke (что делает сбор мусора proxy невозможным если revoke ещё существует).
После вызова функции revoke() прокси становится непригодным для использования: любое обращени к обработчику вызовет TypeError. Прокси, будучи однажды отозван, остаётся отозванным, и повторный вызов revoke() не имеет эффекта — фактически вызов revoke() отделяет объект proxy от функции revoke, и у неё больше нет доступа к объекту. Если на прокси больше нет ссылок, то он становится доступным для сбора мусора. Функция revoke также отделяет target и handler от proxy, поэтому если на target нет ссылок, то он тоже становится доступным для сбора мусора (даже если прокси ещё существует), поскольку больше нет явного способа взаимодействия с целевым объектом.
Предоставление пользователям возможность взаимодействовать с объектом через подлежащий отзыву прокси позволяет контролировать время жизни объекта доступного пользователю. Вы можете сделать объект пригодным для сбора мусора, даже если пользователь все ещё хранит ссылку на его прокси.
| ECMAScript® 2027 Language Specification # sec-proxy.revocable |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 27 июл. 2025 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.