JavaScript でプロパティの noSuchMethod 機能を実装する方法
JavaScript では、noSuchMethod Rhino や SpiderMonkey などの実装の機能により、開発者は未実装のメソッドの動的な動作を実装できます。この機能を使用すると、存在しないメソッドが呼び出されたときに、プロキシ オブジェクトがカスタム メッセージを返したり、特定のアクションを実行したりできるようになります。
標準 JavaScript 言語のプロパティに直接相当するものはありませんが、同様のプロパティをエミュレートすることは可能です。 ECMAScript 6 プロキシを使用した機能。 ECMAScript 6 のリリースでは、プロパティ アクセスをインターセプトしてカスタム動作を定義できる強力なツールである Proxies が導入されました。
プロパティに対して __noSuchMethod__ のような機能を実現するには、次のアプローチを使用できます。
get: function(target, property) { if (property in target) { // Return the property value if it exists return target[property]; } else if (typeof target.__noSuchMethod__ == "function") { // Call the __noSuchMethod__ method with the property name // as the first argument and any additional arguments as the rest return function(...args) { return target.__noSuchMethod__.call(target, property, args); }; } }
function enableNoSuchMethod(obj) { return new Proxy(obj, getTrapHandler); }
const proxy = enableNoSuchMethod({ __noSuchMethod__: function(name, args) { console.log(`No such property ${name} accessed with ${args}`); } }); console.log(proxy.someProperty); // Logs "No such property someProperty accessed with []"
このアプローチを適用すると、JavaScript のプロパティに対する noSuchMethod の動作をエミュレートできます。 ECMAScript 6 プロキシを使用します。この手法を使用すると、プロパティ アクセスを動的に処理でき、存在しないプロパティにアクセスしようとするときにカスタム動作を実装する方法が提供されます。
以上がJavaScript でプロパティの noSuchMethod 機能をシミュレートするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。