ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で文字列から関数を作成するにはどうすればよいですか?
JavaScript で文字列から関数を作成することは、実行時に関数を動的に生成する必要がある場合、または実行したい関数のコードを含む文字列がある場合に役立ちます。
文字列から関数を構築する機能は、実行時に関数を動的に作成できる JavaScript の便利な機能です。 eval() 関数と新しい Function() 関数 Object() [ネイティブ コード] は、これを行う 2 つの最も一般的な方法ですが、どちらにも重大なセキュリティ上の欠陥があります。
Function.prototype.constructor は、あまり知られていませんが、より安全なオプションです。文字列から関数を作成する JavaScript アプローチを選択する前に、リスクと使用例を考慮することが重要です。
JavaScript eval() メソッドは、文字列から関数を構築する最も簡単な方法の 1 つです。この強力な eval() 関数は、文字列として提供された任意の JavaScript コードを実行できます。 ######例###### ### リーリー
ここでは、2 つのパラメーターを受け取り、その合計を返す関数があることがわかります。この関数は文字列に含まれています。 eval() 関数は、この文字列をパラメータとして受け取り、関数を返す前にそれを評価します。返された関数は、他の関数と同様に使用できる add という名前の変数に割り当てられます。方法 2: 新しい Function() コンストラクターを使用する
JavaScript で文字列から関数を作成するもう 1 つの方法は、Function() コンストラクターを使用することです。 Function() コンストラクターは、関数コードを含む文字列から新しい関数オブジェクトを作成します。 Function() コンストラクターを使用して文字列から関数を作成する方法の例を次に示します。 -Example
関数の作成のみが可能なため、eval() よりもリスクは低くなりますが、依然として同様のリスクがあります
これにより関数が生成されますが、文字列として渡される関数本体以外の他のコードは実行できません。ただし、他の 2 つの方法ほど広く使用されておらず、古いブラウザではサポートされていません。 ######例###### ### リーリー
この例では、関数パラメーターと関数本体がコンストラクターに提供されます。 Function.prototype.constructor を使用して、指定されたパラメーターと指定された関数本体で新しい関数を作成し、指定されたパラメーターで関数を呼び出すことですぐにその関数を呼び出します。
文字列から構築する関数はグローバル スコープにアクセスでき、作成元のコードのスコープには含まれないことに注意してください。さらに、関数が複雑な場合、文字列から関数を構築すると、コードの理解とデバッグがより困難になる可能性があります。
以上がJavaScript で文字列から関数を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。