多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

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

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

導言

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

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

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

定義

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

我們知道,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]]

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

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 福利影院第一页 | 欧美最猛黑人xxxxx猛交 | 奇米4444| 免费性 | 最新更新国内自拍视频 | 亚洲精品成人a在线观看 | 久久久日韩精品国产成人 | 亚洲天堂中文字幕在线 | 欧美日韩亚洲国产一区二区三区 | 欧美v日韩v亚洲v最新 | 欧美性猛交xxxx乱大交丰满 | 亚洲产国偷v产偷v自拍色戒 | 西欧free性video意大利 | 高清不卡一区 | 欧美一级人与动毛片免费播放 | 亚洲妇人成熟性成熟网站 | 欧美日韩无 | 女人l8毛片a一级毛片免费 | 国产精品成人不卡在线观看 | 国产亚洲福利精品一区 | 午夜dj影院在线观看免费视频中文 | 天天做天天爱天天综合网 | 免费观看欧美一级牲片一 | 最近免费中文字幕中文高清 | 亚洲欧美日韩综合一区 | 亚洲乱码一二三四区国产 | 日本午夜精品一本在线观看 | 永久免费视频v片www | 久久久久久午夜精品 | 最新中文字幕日本 | 日本特黄高清免费大片爽 | 最新亚洲精品 | 在线观看中文 | 亚洲国产欧美在线人成精品一区二区 | 亚洲国产成人久久一区久久 | 欧美日韩久久中文字幕 | jizz日本老师 | 综合激情区视频一区视频二区 | 小说区 | 视频一区中文字幕 | 色综合小说久久综合图片 |