ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript 関数を名前で安全に呼び出すにはどうすればよいですか?
名前による JavaScript 関数の呼び出し
JavaScript では、文字列としての名前で関数にアクセスすることは、動的コード実行に便利な方法です。 。ただし、これを実現するには、潜在的なセキュリティ脆弱性を回避するための慎重なアプローチが必要です。
解決策:
絶対に必要な場合を除き、安全でない eval 関数を使用するのではなく、より安全な代替方法は、次の手法を使用することです。
1.グローバル関数呼び出し:
文字列名でグローバル関数を呼び出すには、次の構文を使用します。
window["functionName"](arguments);
このメソッドは、グローバル スコープで宣言された関数に対して機能します。
2.名前空間関数の呼び出し (複雑な形式):
名前空間に属する関数を呼び出すには、次の複雑な構文を使用します:
window["My"]["Namespace"]["functionName"](arguments);
この構文により、関数が確実にアクセスされます。ネストされた名前空間を通じて。
3.名前空間関数の呼び出し (コンビニエンス関数):
名前空間関数の呼び出しを簡素化するには、次のコンビニエンス関数の使用を検討してください:
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("My.Namespace.functionName", window, arguments);
このメソッドを使用すると、関数のコンテキストを柔軟に指定でき、コードのさまざまな部分からの呼び出し。
以上がJavaScript 関数を名前で安全に呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。