Javascript作用域鏈

Javascript作用域鏈

先介紹執行環境

* 執行環境定義了變量或函數有權訪問的其他數據,決定了它們各自的行爲,每個執行環境都有一個與之關聯的變量對象,該變量對象裏面保存環境中定義的所有變量和函數,每個函數都有自己的執行環境。 *

定義:

  • 作用域鏈:當代碼在一個環境中執行時,會創建變量對象的一個作用域鏈

作用:

  • 作用域鏈:保證對執行環境有權訪問的所有變量和函數的有序訪問。作用域鏈的前端,始終都是當前執行的代碼所在環境的變量對象

作用域鏈

“`
var glo = ‘global’;

function local() {
var loc = ‘local’;

function tem() {
    var tem = 'tempory';
    foo = glo;
    far = loc;

    // 這裏可訪問glo、loc、tem
}
// 這裏可以訪問glo、loc,不能訪問tem

}

// 這裏只能訪問glo
“`
* 上例中:代碼分爲三個執行環境:全局環境、local()局部環境、tem()局部環境,某一個執行環境可以訪問上一級執行環境裏的變量和函數,不能訪問下一級執行環境裏的變量和函數,上例中的作用域鏈爲 window–>{glo、local() –> {loc、tem() –> {tem、foo、far}}}**

因此作用域鏈實際上是一條訪問變量和函數的權限規定

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章