2016-04-30 60 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++)

这样,它在开始循环之前计算它只有一次。