は私のような定義された関数、dayToString
を、持っていると仮定します。使い方は次のようになります:JavaScript関数内の配列はすべての呼び出しで再作成されますか?</p> <pre><code>function dayToString(n) { return ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"][n]; } </code></pre> <p>十分に簡単:
var d = new Date();
var todayAsString = dayToString(d.getDay());
私の質問は、dayToString
内の配列は、すべての呼び出しに再作成されている、またはそれは一度だけ作成されますか?
編集
明確化:私は手動で閉鎖または外部の配列を経由してこの再割り当てを回避する方法を知っています。私の本来の目的を明確にする:現在のJavaScriptエンジン(V8、SpiderMonkey、JavaScriptCore、Chakraなど)は、配列が静的であり、扱いがそのままであることを認識するのに十分スマートですか?このような最適化を妨げるJS仕様にはおそらく何かがありますか?
私は再割り当てを想定したことを避けるためにこの方法を知っていますが、この質問はV8、JSCに合わせて調整されていて、友人はこの静的なアイテムを関数内で見ることができ、 。 –