この質問のために簡略化したこのコードスニペットがあります。
//var a is generated once at runtime
//from an array of strings
//and an array of functions
var a = [
"Start ",
function(){return "middle ";}, //returns dynamic data
"end"
],
c = "";
//this for-loop represents a call
for(var i = 0; i < a.length; i++){
var d = typeof a[i] === 'function' ? a[i]() : a[i];
c = c.concat(d);
}
console.log(c);
さて、最初の質問:私の呼び出し(forループ)は言うよりも最適ではありませんか...
var call = a[0]+a[1]()+a[2];
...実行時に呼び出しが作成された場所はどこですか?
条件付きの質問:後者の呼び出しがより最適なアプローチである場合、この最適な呼び出し変数/オブジェクト/関数を生成するにはどうすればよいですか?
最後の条件付き質問:最後の質問で私が何を求めているのか理解できない場合は、無視してください。代わりに、私のコードをさらに最適化できるかどうか、そしてどのようにしたらよいか教えてください。
編集:私は先に進み、24Mの呼び出しを実行することでコードのベンチマークを行いました。呼び出し変数は、私の見積もりから約10%高速です。