最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于Javascript作用域鏈的八點(diǎn)總結(jié)

 更新時(shí)間:2013年12月06日 09:51:23   作者:  
其實(shí)吧,關(guān)于作用域鏈相關(guān)的文章我也看了不少,但是我一直也沒能做一個(gè)詳細(xì)的總結(jié),今天把我看到的一些東西,結(jié)合自己的想法,總結(jié)成以下8個(gè)點(diǎn)

1. JavaScript函數(shù)的作用域鏈分為定義時(shí)作用域鏈和運(yùn)行時(shí)作用域鏈;

2.函數(shù)被定義的時(shí)候,它有一個(gè)屬性[[scope]]標(biāo)明它的定義作用域鏈,定義時(shí)作用域鏈[[scope]]遵守這樣的規(guī)則:一個(gè)函數(shù)的定義時(shí)作用域鏈[[scope]]總是它所在的外部函數(shù)的執(zhí)行時(shí)作用域鏈;

3.全局函數(shù)的定義作用域鏈只包含window的屬性;

4.一個(gè)函數(shù)的執(zhí)行時(shí)作用域鏈總是在定義時(shí)作用域鏈的頭部壓入當(dāng)前活動(dòng)對象(它包含this,arguments,參數(shù),局部變量);

5.函數(shù)執(zhí)行時(shí),變量尋址總是從作用域鏈的頂端朝下尋找;所以全局變量的尋址速度最慢;

6.內(nèi)部函數(shù)被執(zhí)行的時(shí)候,他仍然能夠訪問它完整的作用域鏈。這就是閉包能夠在運(yùn)行時(shí)能夠訪問已經(jīng)結(jié)束的外部函數(shù)定義的變量的原因;

7.函數(shù)執(zhí)行遇到with語句時(shí),會(huì)臨時(shí)在作用域鏈頂部壓入with指定的對象的所有屬性作為作用域鏈最頂端;

8.函數(shù)執(zhí)行遇到catch的時(shí)候,會(huì)臨時(shí)在作用域鏈頂部壓入catch指定的錯(cuò)誤對象作為作用域鏈的最頂端;

下面給一個(gè)例子并繪制出作用域鏈,以加深理解:

有這么一段代碼:

復(fù)制代碼 代碼如下:

function assignEvents(){
    var id = "xdi9592";
    document.getElementById("save-btn").onclick = function(event){
        saveDocument(id);
    };
}

把此函數(shù)產(chǎn)生的匿名閉包稱為Closure,則繪制出下圖為assignEvent執(zhí)行時(shí)作用域鏈和Closure的定義時(shí)作用域鏈:

相關(guān)文章

最新評論

沙坪坝区| 乐业县| 宁陕县| 蓝山县| 台州市| 闵行区| 杨浦区| 荥阳市| 且末县| 五河县| 托克逊县| 武陟县| 京山县| 丰台区| 汨罗市| 龙胜| 平遥县| 金乡县| 顺义区| 富川| 察雅县| 侯马市| 无棣县| 华阴市| 新河县| 霍林郭勒市| 东阿县| 淮北市| 三河市| 东乌珠穆沁旗| 福贡县| 会东县| 巴塘县| 射洪县| 中江县| 江永县| 杭锦后旗| 上虞市| 和顺县| 阿尔山市| 姚安县|