文字列名を使用した JavaScript 関数の動的呼び出し
JavaScript は、名前が文字列としてしかない場合に関数を動的に呼び出すための便利なメカニズムを提供します。この機能は、データ駆動型またはリフレクティブ プログラミング アプローチの一部として関数を実行する必要があるシナリオで特に役立ちます。
関数名を関数ポインターに変換するには、JavaScript を使用するのが最も簡単な方法です。ウィンドウオブジェクト。 window オブジェクトにアクセスすると、現在の実行コンテキスト内で定義された関数を動的に参照できます。
たとえば、現在のコンテキスト内に「myFunction」という名前の関数がある場合、次の構文を使用して呼び出すことができます。 :
window["myFunction"](arguments);
このアプローチは、グローバル スコープ内で直接定義された関数にうまく機能します。ただし、実行する関数が名前空間内でネストされている場合、構文は少し複雑になります。
名前空間でネストされた関数には、名前空間を個々のコンポーネントに分割することでアクセスできます。たとえば、名前空間「My.Namespace」内の「functionName」という名前の関数は、次のコードを使用して呼び出すことができます。
window["My"]["Namespace"]["functionName"](arguments);
このプロセスを簡略化するために、executeFunctionByName() という再利用可能な便利な関数を定義できます。 :
function executeFunctionByName(functionName, context /*, args */) { var args = Array.prototype.slice.call(arguments, 2); var namespaces = functionName.split("."); var func = namespaces.pop(); for (var i = 0; i < namespaces.length; i++) { context = context[namespaces[i]]; } return context[func].apply(context, args); }
executeFunctionByName() 関数には 3 つの関数が必要ですパラメータ:
executeFunctionByName() 関数は次のように呼び出すことができます:
executeFunctionByName("My.Namespace.functionName", window, arguments);
このアプローチは、JavaScript で関数を動的に実行する柔軟で便利な方法を提供します。スコープや名前空間に関係なく。
以上が文字列名を使用して JavaScript 関数を動的に呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。