2010-06-16 68 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