讓說,我有以下情形:現在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