From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../global_objects/proxy/revocable/index.html | 91 ++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 files/ja/web/javascript/reference/global_objects/proxy/revocable/index.html (limited to 'files/ja/web/javascript/reference/global_objects/proxy/revocable/index.html') diff --git a/files/ja/web/javascript/reference/global_objects/proxy/revocable/index.html b/files/ja/web/javascript/reference/global_objects/proxy/revocable/index.html new file mode 100644 index 0000000000..54470c2b0e --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/proxy/revocable/index.html @@ -0,0 +1,91 @@ +--- +title: Proxy.revocable() +slug: Web/JavaScript/Reference/Global_Objects/Proxy/revocable +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Proxy +translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/revocable +--- +
{{JSRef}}
+ +

Proxy.revocable() メソッドは、取り消し可能な {{jsxref("Proxy")}} オブジェクトを作成できます。

+ +

構文

+ +
Proxy.revocable(target, handler);
+
+ +

引数

+ +
+
+
target
+
Proxy でラップする対象のオブジェクトです。これは一連のオブジェクト、例えばネイティブの配列、関数、他の. Proxy などを取ることもできます。
+
handler
+
オブジェクトで、プロパティが操作が実行されたときのプロキシ p の動作を定義する関数であるものです。
+
+
+ +

返値

+ +

新しく作成された取り消し可能な Proxy オブジェクト。

+ +

解説

+ +

取り消し可能な Proxy は次の2つのプロパティ {proxy: proxy, revoke: revoke} を持ったオブジェクトです。

+ +
+
proxy
+
new Proxy(target, handler) 呼び出しで生成したプロキシオブジェクトです。
+
revoke
+
proxy を無効にするための引数を持たない関数です。
+
+ +

revoke() 関数を呼ぶと、プロキシオブジェクトは使用できなくなり、ハンドラーへのどんなトラップも {{jsxref("TypeError")}} をスローします。プロキシが取り消されると、取り消されたままになり、ガベージコレクションの対象となります。再度 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 is thrown
+proxy.foo = 1           // TypeError again
+delete proxy.foo;       // still TypeError
+typeof proxy            // "object", typeof doesn't trigger any trap
+
+ +

仕様書

+ + + + + + + + + + + + +
仕様書
{{SpecName('ESDraft', '#sec-proxy.revocable', 'Proxy Revocation Functions')}}
+ +

ブラウザーの互換性

+ + + +

{{Compat("javascript.builtins.Proxy.revocable")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf