はじめに:
JavaScript は、ゲッターとプロパティを介してプロパティにアクセスおよび変更するための柔軟なメカニズムを提供します。セッター。事前に決定されたプロパティ名に対してゲッターとセッターを定義する方法はよく知られていますが、未定義のプロパティ名に適用される動的ゲッターとセッターを実装することは可能ですか?
動的ゲッタープロキシを使用したセッター (ES6 ):
ES2015 の時点で、JavaScript にプロキシが導入され、他のオブジェクトの「ファサード」として機能するオブジェクトの作成が可能になりました。これにより、ゲッターやセッターなどのプロパティ操作の傍受と変更が可能になります。
例:
次のコード スニペットは、プロキシを使用した動的なゲッターとセッターを示します。
<code class="javascript">"use strict"; if (typeof Proxy == "undefined") { throw new Error("This browser doesn't support Proxy"); } let original = { example: "value", }; let proxy = new Proxy(original, { get(target, name, receiver) { if (Reflect.has(target, name)) { let rv = Reflect.get(target, name, receiver); if (typeof rv === "string") { rv = rv.toUpperCase(); } return rv; } return "missing"; } }); console.log(`original.example = ${original.example}`); // "original.example = value" console.log(`proxy.example = ${proxy.example}`); // "proxy.example = VALUE" console.log(`proxy.unknown = ${proxy.unknown}`); // "proxy.unknown = missing" original.example = "updated"; console.log(`original.example = ${original.example}`); // "original.example = updated" console.log(`proxy.example = ${proxy.example}`); // "proxy.example = UPDATED"</code>
この例では:
以上がJavaScript プロキシは、未定義のプロパティの動的なゲッターとセッターを作成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。