2013-04-20 79 views
1

我琢磨這個:JavaScript的可變分辨率

function outer() 
{ 
    var myVar = 1; 

    function inner() 
    { 
     alert(myVar); 
    } 
} 

現在,據我所知,這將導致該變量兩個查找 - 一個查找,檢查局部變量在內部函數和一個查詢外部函數 - 在此處找到變量。

的問題是 - 這將是對性能有特別大的漏相比,這時候:

function myFunc() 
{ 
    var myVar = 1; 

    alert(myVar); 
} 

這將只需要該變量的一個查找 - 它然後找到一個局部變量。

+3

你永遠不會調用'inner'函數。另外,不,這不會影響性能。 – Paulpro 2013-04-20 22:36:06

+0

您是否將此代碼識別爲性能瓶頸?如果不是,從可維護性/代碼組織的角度出發寫一個最有意義的。 – 2013-04-20 22:38:16

+0

@AndrewWhitaker:明顯的答案是顯而易見的。 – Charles 2013-04-20 22:40:07

回答

1

在較老的JS引擎中,範圍查找可能會對性能造成一些影響。

然而,即使年前,這是一個非常微小的差異 - 並不是真的有什麼擔心。

今天的引擎最有可能像這樣優化查找,一般來說它們的性能要好得多。除非你正在寫一些完全瘋狂的東西,或者針對性能非常差的設備,否則這不是你需要擔心的。