1.執(zhí)行環(huán)境 即是 作用域,每個(gè) 執(zhí)行環(huán)境 都有一個(gè)對(duì)應(yīng)的 ?變量對(duì)象,用來包含在該環(huán)境創(chuàng)建的 變量和函數(shù)。
2.全局執(zhí)行環(huán)境 根據(jù)ECMAScript的運(yùn)行平臺(tái)決定,例如 瀏覽器中的 全局執(zhí)行環(huán)境對(duì)象 是 window (變量)對(duì)象,nodejs的 全局執(zhí)行環(huán)境對(duì)象 是 global(變量)對(duì)象。
3.在環(huán)境中創(chuàng)建的 變量和函數(shù) 是作為該環(huán)境對(duì)應(yīng)的 變量對(duì)象 的屬性和方法存在。例如 創(chuàng)建一個(gè)全局變量 num = 1,此時(shí)的num是window的一個(gè)屬性名,而屬性值為1,可用window.num來調(diào)用。
4.函數(shù)內(nèi)部是 局部作用域(ES6有了塊級(jí)作用域),函數(shù)的參數(shù)存放在arguments對(duì)象中,而arguments對(duì)象就是 該函數(shù)作用域中變量對(duì)象上的第一個(gè)屬性(該屬性結(jié)構(gòu)為類似數(shù)組的對(duì)象)。
5.一個(gè)執(zhí)行環(huán)境的作用域鏈?zhǔn)怯稍搱?zhí)行環(huán)境的 變量對(duì)象 和外部環(huán)境的 變量對(duì)象 以及下一個(gè) 外部變量對(duì)象 依次連接組成,全局環(huán)境變量對(duì)象 始終是最后一個(gè)對(duì)象,當(dāng)前執(zhí)行環(huán)境的 變量對(duì)象 始終是作用域鏈的最前端。
ps: 看了阮老師文章后的總結(jié) ,原文:學(xué)習(xí)Javascript閉包(Closure)