可執行**:全域性、函式、eval
執行**時建立的上下文型別:全域性上下文、函式上下文、eval上下文
執行上下文(ec)屬性:變數物件(vo)、this、作用域鏈(sc)
執行上下文棧
用來儲存:變數、宣告式函式、形參
變數例項化
優先順序:宣告式函式》函式形參》變數
(例項化時新增的變數不可刪)
**執行var a=10; delate //不可刪
window.a; delate //可刪
作用域鏈可以看做乙個陣列
with 可以臨時改變作用域鏈,因為多查詢了一次變數,可能導致效率變低。
ec:execution context 上下文
vo:variable objec 變數物件
sc:scope chain 作用域鏈
ao:activation object 啟用物件
建立上下文階段初始化this、變數物件、作用域鏈,變數例項化var y = 10;
function
test()}
var fun = test();
fun();
此時的上下文棧``` js
global ec=,
this : window,
sc : [window]
}```

**執行階段
執行fun() , 即test函式,global ec=,
this : window,
sc : [window]
}
end
js 閉包,作用域鏈,活動物件,變數物件
什麼是閉包 簡單的來講,就是乙個函式,乙個有權訪問另外乙個函式作用域內的變數的函式,常見的建立閉包的方式就是在乙個函式內部建立另外乙個函式 問題又來了,什麼是函式作用域 先要介紹一下什麼是執行環境 環境 執行環境定義了變數或者函式有權訪問的其他資料,決定了它們各自的行為,每乙個環境都有乙個與之關聯的...
作用域,變數作用域,作用域鏈知識
第2章 變數作用域 第3章 作用域鏈 預覽 1.全域性作用域 整個script標籤下 或者是單獨的js檔案 外部js 2.區域性作用域也叫 函式作用域 在函式內部就是區域性作用域 這個 的名字 變數 只在函式內部起作用和效果 3.不同作用域下,定義相同變數名是不衝突的。如果是在同一作用域宣告2個相同...
js 作用域鏈
作用域鏈 作用域鏈就是內部上下文的變數物件vo的列表,作用域鏈用來檢索上下文出現的識別符號,從而保證有序訪問所有變數和函式。乙個作用域鏈包括父級變數物件 variable object 作用域鏈的頂部 函式自身變數vo和活動物件 activation object 當查詢識別符號的時候,會從作用域鏈...