2010-06-16 69 views
5
function doIt(param) { 
    var localVar = param; 
    //do lots of stuff with localVar 
} 

function doIt(param) { 
    //do lots of stuff with param 
} 

上面的代码在效率方面有什么区别吗?局部变量vs参数

+0

试试这个简单的[benchmark](http://jsbin.com/uyani3/7/)。如果你发现一个区别(我在Firefox和Opera上得到有趣的结果),那么它会忽略不计。 – CMS 2010-06-16 23:11:57

回答

5

没有区别。参数只是一个局部变量,它在调用时使用传入的参数进行初始化。

但是,如果要更改变量的值,通常认为保留参数变量不变是一种很好的做法,只是出于可读性和可维护性的原因。

0

param变量已经是局部变量,因此这两个代码片段之间唯一的区别是第一个代码段创建了无用的副本param变量。

+1

甚至没有。任何像样的编译器都应该去掉中间死变量(比如param)。 – Karmastan 2010-06-16 23:00:32