整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          閉包的微觀世界

          如果要更加深入的了解閉包以及函數(shù)a和嵌套函數(shù)b的關(guān)系,我們需要引入另外幾個概念:函數(shù)的執(zhí)行環(huán)境(excution context)、活動對象(call object)、作用域(scope)、作用域鏈(scope chain)。以函數(shù)a從定義到執(zhí)行的過程為例闡述這幾個概念。

          1. 定義函數(shù)a的時候,js解釋器會將函數(shù)a的作用域鏈(scope chain)設(shè)置為定義a時a所在的“環(huán)境”,如果a是一個全局函數(shù),則scope chain中只有window對象。
          2. 當執(zhí)行函數(shù)a的時候,a會進入相應(yīng)的執(zhí)行環(huán)境(excution context)。
          3. 在創(chuàng)建執(zhí)行環(huán)境的過程中,首先會為a添加一個scope屬性,即a的作用域,其值就為第1步中的scope chain。即a.scope=a的作用域鏈。
          4. 然后執(zhí)行環(huán)境會創(chuàng)建一個活動對象(call object)?;顒訉ο笠彩且粋€擁有屬性的對象,但它不具有原型而且不能通過JavaScript代碼直接訪問。創(chuàng)建完活動對象后,把活動對象添加到a的作用域鏈的頂端。此時a的作用域鏈包含了兩個對象:a的活動對象和window對象。
          5. 下一步是在活動對象上添加一個arguments屬性,它保存著調(diào)用函數(shù)a時所傳遞的參數(shù)。
          6. 后把所有函數(shù)a的形參和內(nèi)部的函數(shù)b的引用也添加到a的活動對象上。在這一步中,完成了函數(shù)b的的定義,因此如同第3步,函數(shù)b的作用域鏈被設(shè)置為b所被定義的環(huán)境,即a的作用域。
          了解更多內(nèi)容:請訪問:雨點網(wǎng)絡(luò) 石家莊網(wǎng)站制作 石家莊網(wǎng)站建設(shè)

          主站蜘蛛池模板: 国产另类ts人妖一区二区三区| 人妻精品无码一区二区三区| 欧美亚洲精品一区二区| 日韩一区二区三区在线精品| 中字幕一区二区三区乱码| 中文字幕亚洲一区二区va在线| 国产欧美色一区二区三区| 亚洲一区二区三区国产精品无码| 夜色阁亚洲一区二区三区| 国产成人久久一区二区不卡三区| 少妇无码一区二区二三区| 精品一区二区三区四区| 国精产品一区一区三区| 久久精品无码一区二区app | 国产精品揄拍一区二区久久| 国产午夜精品一区理论片飘花| 亚洲AⅤ无码一区二区三区在线| 日韩一区二区免费视频| 精品国产日韩亚洲一区在线| 无码日本电影一区二区网站| 中字幕一区二区三区乱码| 日韩一区二区在线播放| 亚洲欧美成人一区二区三区 | 蜜桃视频一区二区三区在线观看| 国产一区二区三区高清视频 | 中文字幕无码一区二区三区本日 | 国模无码一区二区三区不卡| 黄桃AV无码免费一区二区三区 | 国产短视频精品一区二区三区| 国产内射999视频一区| 亚洲成AV人片一区二区密柚 | 亚洲午夜日韩高清一区| 午夜无码一区二区三区在线观看 | 97se色综合一区二区二区| 精品一区精品二区制服| 国产无吗一区二区三区在线欢| 国产福利电影一区二区三区,亚洲国模精品一区| 丰满爆乳无码一区二区三区| 国产伦精品一区二区三区精品| 久久精品中文字幕一区| 污污内射在线观看一区二区少妇|