2016-04-30 95 views
0

如果我有這樣一個funtion:JavaScript:用局部變量替換param?

function xyz(b) 
{ 
    for(var i = 0; i < b.length; i++) 
    { 
     // do something with b items... 
    } 
} 

......那豈不是更多的內存友好的,如果我是帶項目工作b之前分配給該函數內的局部變量?

function xyz(b) 
{ 
    var c = b; 

    for(var i = 0; i < c.length; i++) 
    { 
     // do something with c items... 
    } 
} 
+0

永遠不要在這個東西上浪費時間,你總是會陷入其他地方,相信我,也許如果這樣做會影響性能0.0001% –

+0

它不會有效。 b已經是一個像c一樣的局部變量。它的效率會降低,因爲JavaScript引擎必須解釋var c = b並浪費cpu週期。真是浪費。大聲笑。 – dfdsfdsfsdf

+0

@KMC即使不是這樣,這絕對不會影響任何代碼的顯着性能! –

回答

2

在您的例子都bc是局部變量,因爲它們只在函數存在。所以你的代碼實際上會少一點性能。

備註 - 如果您希望自己的代碼具有更高的性能,您應該只爲整個循環計算c.length一次。在你的例子中,你正在計算循環的每一次迭代。相反,你可以做如下:

for (var i = 0, cLen = c.length; i < cLen; i++)

這樣,它在開始循環之前計算它只有一次。