diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-09-14 11:10:52 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-14 11:10:52 +0900 |
commit | 0a8266a4887cf47252943843204a9a11aabf2593 (patch) | |
tree | 597c33f2d12b9acb8b49c6faa2bfebf6313d702a /files/ja/web/javascript/reference/global_objects/proxy/revocable | |
parent | bc622146e4b6217e1b1e4acf6f2e172b2d09beb5 (diff) | |
download | translated-content-0a8266a4887cf47252943843204a9a11aabf2593.tar.gz translated-content-0a8266a4887cf47252943843204a9a11aabf2593.tar.bz2 translated-content-0a8266a4887cf47252943843204a9a11aabf2593.zip |
Global_Objects/Proxy/revocable を更新 (#2343)
- Markdownに変換
- 2021/07/21 時点の英語版に同期
Diffstat (limited to 'files/ja/web/javascript/reference/global_objects/proxy/revocable')
-rw-r--r-- | files/ja/web/javascript/reference/global_objects/proxy/revocable/index.html | 89 | ||||
-rw-r--r-- | files/ja/web/javascript/reference/global_objects/proxy/revocable/index.md | 75 |
2 files changed, 75 insertions, 89 deletions
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 deleted file mode 100644 index b1f9e54ea8..0000000000 --- a/files/ja/web/javascript/reference/global_objects/proxy/revocable/index.html +++ /dev/null @@ -1,89 +0,0 @@ ---- -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 ---- -<div>{{JSRef}}</div> - -<p><code><strong>Proxy.revocable()</strong></code> メソッドは、取り消し可能な {{jsxref("Proxy")}} オブジェクトを作成できます。</p> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Proxy.revocable(<var>target</var>, <var>handler</var>); -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<div> -<dl> - <dt><code><var>target</var></code></dt> - <dd><code>Proxy</code> でラップする対象のオブジェクトです。これは一連のオブジェクト、例えばネイティブの配列、関数、他の. Proxy などを取ることもできます。</dd> - <dt><code><var>handler</var></code></dt> - <dd>オブジェクトで、プロパティが操作が実行されたときのプロキシ <code><var>p</var></code> の動作を定義する関数であるものです。</dd> -</dl> -</div> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>新しく作成された取り消し可能な <code>Proxy</code> オブジェクト。</p> - -<h2 id="Description" name="Description">解説</h2> - -<p>取り消し可能な <code>Proxy</code> は次の2つのプロパティ <code>{proxy: proxy, revoke: revoke}</code> を持ったオブジェクトです。</p> - -<dl> - <dt><code>proxy</code></dt> - <dd><code>new Proxy(target, handler)</code> 呼び出しで生成したプロキシオブジェクトです。</dd> - <dt><code>revoke</code></dt> - <dd><code>proxy</code> を無効にするための引数を持たない関数です。</dd> -</dl> - -<p><code>revoke()</code> 関数を呼ぶと、プロキシオブジェクトは使用できなくなり、ハンドラーへのどんなトラップも {{jsxref("TypeError")}} をスローします。プロキシが取り消されると、取り消されたままになり、ガベージコレクションの対象となります。再度 <code>revoke()</code> が呼ばれても影響はありません。</p> - -<h2 id="Examples" name="Examples">例</h2> - -<pre class="brush: 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 is thrown -proxy.foo = 1 // TypeError again -delete proxy.foo; // still TypeError -typeof proxy // "object", typeof doesn't trigger any trap -</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-proxy.revocable', 'Proxy Revocation Functions')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Proxy.revocable")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Proxy")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/proxy/revocable/index.md b/files/ja/web/javascript/reference/global_objects/proxy/revocable/index.md new file mode 100644 index 0000000000..25045bea38 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/proxy/revocable/index.md @@ -0,0 +1,75 @@ +--- +title: Proxy.revocable() +slug: Web/JavaScript/Reference/Global_Objects/Proxy/revocable +tags: + - ECMAScript 2015 + - JavaScript + - Method + - Proxy +browser-compat: javascript.builtins.Proxy.revocable +translation_of: Web/JavaScript/Reference/Global_Objects/Proxy/revocable +--- +{{JSRef}} + +**`Proxy.revocable()`** メソッドは、取り消し可能な {{jsxref("Proxy")}} オブジェクトを作成するために使用します。 + +## 構文 + +```js +Proxy.revocable(target, handler); +``` + +### 引数 + +- `target` + - : `Proxy` でラップする対象のオブジェクトです。これは一連のオブジェクト、例えばネイティブの配列、関数、他のプロキシーなどを取ることもできます。 +- `handler` + - : プロキシー `p` に対して操作が行われたときの動作を定義する関数をプロパティとするオブジェクトです。 + +### 返値 + +新しく作成された取り消し可能な `Proxy` オブジェクト。 + +## 解説 + +取り消し可能な `Proxy` は `{proxy: proxy, revoke: revoke}` の 2 つのプロパティを持ったオブジェクトです。 + +- `proxy` + - : `new Proxy(target, handler)` 呼び出しで生成したプロキシーオブジェクトです。 +- `revoke` + - : `proxy` を無効にするための引数を持たない関数です。 + +`revoke()` 関数を呼び出すと、プロキシーオブジェクトは使用できなくなります。ハンドラーへのトラップが発生すると、どれでも {{jsxref("TypeError")}} が発生します。プロキシーが取り消されると、取り消されたままになり、ガベージコレクションの対象となります。再度 `revoke()` が呼ばれても影響はありません。 + +## 例 + +### Proxy.revocable の使用 + +```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 でトラップは発生しない +``` + +## 仕様書 + +{{Specifications}} + +## ブラウザーの互換性 + +{{Compat}} + +## 関連情報 + +- {{jsxref("Proxy")}} |