日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > web前端 > jscript > ECMA-262-3 深入解析.第四章.作用域鏈

ECMA-262-3 深入解析.第四章.作用域鏈

來源:程序員人生   發布時間:2014-03-16 04:11:13 閱讀次數:2948次

導言

在第二章關于變量對象的描述中,我們已經知道一個執行上下文 (變量、函數聲明和函數的形參)的數據作為屬性存儲在變量對象中。

同時我們也知道變量對象在每次進入上下文時創建,并填入初始值,值得更新出現在代碼執行階段。

這一章專門討論與執行上下文直接相關的更多細節,這次我們將提及一個議題——作用域鏈

定義

如果要簡要的描述并展示其重點,作用域鏈大多數與內部函數相關。

我們知道,ECMAScript 允許創建內部函數,我們甚至能從內部函數中返回這些函數。

var x = 10;function foo() {  var y = 20;  function bar() {    alert(x + y);  }  return bar;}foo()(); // 30

這樣,很明顯每個上下文擁有自己的變量對象 ,對于全局上下文,它是全局對象自身,對于函數,它是激活對象

作用域鏈完全是內部上下文所有變量對象(包括父變量對象)的列表。此鏈用來變量查詢。即在上面的例子中,“bar”上下文的作用域鏈包括AO(bar)、AO(foo)和VO(global)。

但是,讓我們仔細研究這個問題。

讓我們從定義開始,并進深一步的討論例子。

作用域鏈與一個執行上下文相關,變量對象的一條鏈標識符解析中用于變量查找。

一個函數上下文的作用域鏈在函數調用時創建包含激活對象和這個函數內部的[[scope]]屬性。下面我們將更詳細的討論一個函數的[[scope]]屬性。

在上下文中示意如下:

activeExecutionContext = {    VO: {...}, // or AO    this: thisValue,    Scope: [ // Scope chain      // list of all variable objects      // for identifiers lookup    ]};

這里scope定義如下:

Scope = AO + [[Scope]]

這種聯合和標識符解析過程,我們將在下面討論,這與函數的生命周期相關。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 一本一本久久a久久精品综合小说 | 国产一区福利 | 人人九九精 | 欧美在线观看视频一区二区 | 一区二区视频 | 黄色av一区 | 国产精品久久久久久久久久久新郎 | 精品一区二区久久 | 欧美精品在线视频 | 九色av| 免费激情网址 | 一本色道久久综合亚洲二区三区 | 久久久久国产精品一区二区 | 国产乱码精品一区二区三区中文 | 欧美综合在线播放 | 成人在线视频网址 | 日韩在线高清 | 欧美日韩精品一二三区 | 久久久久久国产免费 | 精品久久久久久久久久久久久久久 | 欧美性天天影院 | 亚洲视频高清 | 亚洲精品日韩在线 | 正在播放日韩 | 91人人看 | 男女国产视频 | 日本大片免a费观看视频的特点 | 美女扒开腿让男生桶 | 观看av| 亚洲精品一区二区三区中文字幕 | 国产精品美女 | 亚洲精品国产成人久久av盗摄 | 精品国产乱码久久久久久88av | 日本淫片| 亚洲国产成人在线 | 男女免费观看在线爽爽爽视频 | 欧美经典一区 | 国产精品久久久久久久va果冻 | 成人h精品动漫一区二区三区 | 国产美女一区二区 | 亚洲欧美日韩中文视频 |