學習筆記之JavaScript查找上級作用域

上級作用域

函數在哪兒定義的,它的上級作用域就是誰(和函數在哪兒執行沒有關係)

我們來看一段代碼和執行圖示

var num = 12;
function fn() {
    var num = 120;
    return function() {
        consoloe.log(num);
    };
}
var f = fn();
f();

(function () {
    var num =1200;
    f();
})()

在這裏插入圖片描述

白話

1、return 返回的東西,不進行預解釋(return後邊的代碼不進行預解釋,但是return下邊的代碼進行預解釋)
2、圖是仿別人畫的,本人對作用域的理解也很欠缺,圖看起來並沒有明確展示作用域鏈,但是對代碼的執行過程詮釋的還可以。
3、作用域淺理解(僅供參考,不一定正確):保存函數靜態代碼的堆內存首次開闢的時候,它的地址首次保存在存放那個函數的堆內存中 (不包含普通對象,普通對象沒有作用域),那個函數就是它的上級作用域。

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