让说,我有以下情形:现在javascript函数范围,变量声明
var namespace = {};
(function($)
{
$.extend(namespace,
{
test1: function(someArray, someObj)
{
for(var i= 0, ii= someArray.length;i<ii;i++)
{
var text = someObj[someArray[i]];
// do something with text
}
},
test2: function(someArray, someObj,i,ii,text)
/*
see that the i,ii,text are unused parameters,
that will be used instead of variables
*/
{
for(i= 0, ii= someArray.length;i<ii;i++)
{
text = someObj[someArray[i]];
// do something with text
}
},
});
})(jQuery);
中,TEST1和TEST2的结果都是一样的......但什么性能,内存使用情况.. 在上面介绍的两种方法中,声明i,ii,测试变量有什么区别吗?
例如,我认为test2可能更高效,因为变量位于本地函数作用域中,所以在函数退出后,执行上下文将被销毁,释放用于参数的资源......变量将不会被分配给全局对象'窗口'。
那么什么方法表现最好?为什么?
[编辑]
感谢所有为你解答!
如果代码具有可读性问题,则没有问题...我现在只关注性能/内存使用情况。
没有你关心的性能差异。 – Raynos 2011-03-04 13:47:08