在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 關(guān)于執(zhí)行上下文的數(shù)據(jù)結(jié)構(gòu)的疑問

關(guān)于執(zhí)行上下文的數(shù)據(jù)結(jié)構(gòu)的疑問

以前學習過執(zhí)行上下文內(nèi)部結(jié)構(gòu)的一些知識,大概的知道執(zhí)行上下文內(nèi)部有變量對象VO/AO、this、作用域鏈Scope等屬性。

今天看了篇關(guān)于執(zhí)行上下文的文章,文中給出了全局執(zhí)行上下文和函數(shù)執(zhí)行上下文的數(shù)據(jù)結(jié)構(gòu)。

  Global Execution Context = {
        global object,
        this: global object,
        outer environment: null,
        enviroment: {
            // all the identifiers
            variable,
            function expression,
            function declaration,
        },
    }
  Execution Context = {
        this: some value,
        outer environment: outer lexcial environment,
        enviroment: {
            // all the identifiers
            parameter,
            arguments,
            variable,
            function expression,
            function declaration,
        },
    }    

我的疑問比較多:

  1. eviroment對應了以前學的知識中的變量對象?外部指針對應了Scope?
  2. 按以前學的知識,只有函數(shù)的形參、函數(shù)聲明、變量聲明可以進入變量對象,為什么在function Execution Context中,函數(shù)表達式 function expression也進入了enviroment,說明了 enviroment不是變量對象?

3.在Global Execution Context中有g(shù)lobal object和enviroment,按道理,全局對象就是全局變量對象,相同的東西沒必要保存兩份,這也證明了 enviroment 不是變量對象吧。

所以,對原文的正確性,有些存疑。

回答
編輯回答
不將就

我個人覺得 按作者的意思:
enviroment 就是 變量對象
outer environment 就是 作用域鏈

至于
lobal Execution Context 中的 global object
enviroment 中的 function expression
我也沒懂它寫的什么, 畢竟也是每個人自己的總結(jié), 也不是權(quán)威結(jié)論, 自己 get 到點就行了

2017年11月7日 07:30