2017-02-20 6 views
-1

eval()を使用することは危険にさらされており、実際には使用しないでください。しかし、evalへの入力を完全に制御でき、安全に使用できると想像してみましょう。JavaScriptの評価を使用して生成された関数を最適化できますか?

私は、以下のようにeval()を使用して関数を生成し、生成された関数を何度も呼び出すと、V8などのブラウザランタイムでコンパイラ/ランタイムの最適化が得られるのでしょうか?

eval('var myFunction = function() { return 1 * 2/3 }') 
myFunction() 

答えて

1

私はむしろ機能がeval()が呼び出されたときに、ドキュメントがロードされていない時に解析されているので、それは実行時にマイナスの影響を与えていることを示唆しています。

Javascriptエンジン(V8など)による最適化は、関数の生成方法の影響を受けません。

+0

あなたの答えをありがとう。分かったと思います。コンパイルが遅れるので、関数を生成するのがevalで遅くなりますが、関数がどこかに格納され、後で使用されると他の関数と同様に最適化できます。 – ChrisBellew

+0

@ChrisBellew自分のコメントを編集できます。タイプミスを修正するために別のものを追加しないでください。 –

関連する問題