JavaScript詞法做用域和動態做用域

做用域
  1. 做用域是指代碼中定義變量的區域。
  2. 做用域規定了如何查找變量,也就是肯定當前代碼執行對變量的訪問權限
  3. JavaScript採用的是詞法做用域,也就是靜態做用域。
靜態做用域和動態做用域
var value = 1
function foo(){
    console.log(value)  // 1
}
function bar(){
    var value = 2
    foo()
}
bar()

靜態做用域
    執行foo()函數,先從foo函數內部查找是否有value變量,若是沒有則去上一層做用域去尋找,也就是value=1,因此結果打印1
動態做用域
  1. bash就是動態做用域
value=1
function foo () {
    echo $value;
}
function bar () {
    local value=2;  // 2
    foo;
}
bar

動態做用域
    執行foo()函數,先從foo函數內部尋找是否有value變量,若是沒有,則去調用函數的做用域去尋找,也就是bar函數內部尋找value變量,結果打印2
相關文章
相關標籤/搜索