この関数が有効な JavaScript 式またはステートメントの文字列を取得し、式を評価するか、ステートメントを実行することは知っていますが、単にスクリプトにコードを記述するのではなく、実行のためにコードを関数に渡す必要があるのはなぜですか?
3 に答える
コードが動的に構築される場合や、現在のコンテキストで評価する必要がある JSON のようなものである場合などがあります。そうすることは、必ずしも良いことでも必要なことでもありません。別の議論です。
動的変数を作成したり、json データを解析したりする必要がある状況によって異なります。いずれにせよ、使用しないことを強くお勧めします。
詳細については、次を参照してください。
それを避けるには、次を参照してください。
関数があるとしましょう: makeCheckbox()
、makeRadio()
およびmakeSelect()
(理論的には)。ユーザーのアクティビティ (メニュー クリックなど) によって関数を呼び出したい。などで作成できますがif
、次のようなものを作成することもできます。else if
switch
eval
eval('make'+userChoose.charAt(0).toUpperCase()+string.slice(1)+'()');
whereuserChoose
はオプションの 1 つです: radio
、checkbox
または最初の文字select
が最初に大文字make
になり、次に(前) と(後) に連結さ()
れ、最後に関数の 1 つを呼び出します。
大規模なプロジェクトでは、「背後に隠れている」ため、機能する呼び出しを単純に見つけることができないため、これは良い方法ではありませんがeval
、それが唯一の方法である場合もあります。