国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

關于Javascript作用域鏈的八點總結

2024-05-06 15:57:04
字體:
來源:轉載
供稿:網友
其實吧,關于作用域鏈相關的文章我也看了不少,但是我一直也沒能做一個詳細的總結,今天把我看到的一些東西,結合自己的想法,總結成以下8個點

1. JavaScript函數的作用域鏈分為定義時作用域鏈和運行時作用域鏈;

2.函數被定義的時候,它有一個屬性[[scope]]標明它的定義作用域鏈,定義時作用域鏈[[scope]]遵守這樣的規則:一個函數的定義時作用域鏈[[scope]]總是它所在的外部函數的執行時作用域鏈;

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

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

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

6.內部函數被執行的時候,他仍然能夠訪問它完整的作用域鏈。這就是閉包能夠在運行時能夠訪問已經結束的外部函數定義的變量的原因;

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

8.函數執行遇到catch的時候,會臨時在作用域鏈頂部壓入catch指定的錯誤對象作為作用域鏈的最頂端;

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

有這么一段代碼:

復制代碼 代碼如下:


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


把此函數產生的匿名閉包稱為Closure,則繪制出下圖為assignEvent執行時作用域鏈和Closure的定義時作用域鏈:

關于Javascript作用域鏈的八點總結

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 尖扎县| 施甸县| 汤原县| 乐平市| 凉城县| 宿州市| 邯郸市| 南溪县| 江都市| 攀枝花市| 临夏县| 哈尔滨市| 嵊州市| 错那县| 上栗县| 吴桥县| 新乐市| 阆中市| 汽车| 蕲春县| 全椒县| 拉萨市| 嵊州市| 安庆市| 湛江市| 绥滨县| 长顺县| 肃南| 石林| 延吉市| 黄梅县| 饶阳县| 巧家县| 九寨沟县| 玉山县| 于都县| 湄潭县| 田林县| 镇原县| 新营市| 绩溪县|