ホームページ >ウェブフロントエンド >jsチュートリアル >文字列名を使用して JavaScript 関数を実行するにはどうすればよいですか?

文字列名を使用して JavaScript 関数を実行するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-19 10:27:16699ブラウズ

How Can I Execute a JavaScript Function Using Its String Name?

文字列表現を使用した JavaScript 関数の実行

クエリ: JavaScript 関数の名前が文字列として保存されており、後でそれを呼び出す予定です。 。この文字列を関数ポインタに変換して、その後関数を呼び出すにはどうすればよいでしょうか?

回答:

  • eval を回避します: window["functionName などのより安全な代替手段を使用してください。 "](引数) またはwindow"My"["functionName"](arguments).
  • コンビニエンス関数: 以下に示すように、executeFunctionByName のような関数を実装します。
function executeFunctionByName(functionName, context /*, args */) {
  // Retrieve arguments
  var args = Array.prototype.slice.call(arguments, 2);
  // Split the namespace into parts
  var namespaces = functionName.split(".");
  // Get the function name
  var func = namespaces.pop();
  // Iterate through namespaces and get the context
  for (var i = 0; i < namespaces.length; i++) {
    context = context[namespaces[i]];
  }
  // Apply the function with the context and arguments
  return context[func].apply(context, args);
}
  • 呼び出し: として便利な関数を使用します。
executeFunctionByName("My.Namespace.functionName", window, arguments);

このソリューションにより、名前空間内の関数であっても、文字列表現に基づいて関数を動的に実行できます。このシナリオを効果的に処理するために提供される包括的なソリューションを検討してください。

以上が文字列名を使用して JavaScript 関数を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。