深入JavaScript

深入之詞法作用域和動態作用域

JavaScript 採用詞法作用域(lexical scoping),也就是靜態作用域。

var value = 1;

function foo() {
    console.log(value);
}

function bar() {
    var value = 2;
    foo();
}

bar();

// 結果是 1

原因也很簡單,因爲JavaScript採用的是詞法作用域,函數的作用域基於函數創建的位置。

根據書寫的位置,查找上面一層的代碼,也就是 value 等於 1,所以結果會打印 1。

發佈了123 篇原創文章 · 獲贊 16 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章