js 變數物件 作用域鏈

2021-06-29 09:10:34 字數 1018 閱讀 7693

可執行**:全域性、函式、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 啟用物件

var y = 10;

function

test()}

var fun = test();

fun();

建立上下文階段初始化this、變數物件、作用域鏈,變數例項化

``` js

global ec=,

this : window,

sc : [window]

}```

此時的上下文棧

**執行階段

global ec=,

this : window,

sc : [window]

}

執行fun() , 即test函式,

end

js 閉包,作用域鏈,活動物件,變數物件

什麼是閉包 簡單的來講,就是乙個函式,乙個有權訪問另外乙個函式作用域內的變數的函式,常見的建立閉包的方式就是在乙個函式內部建立另外乙個函式 問題又來了,什麼是函式作用域 先要介紹一下什麼是執行環境 環境 執行環境定義了變數或者函式有權訪問的其他資料,決定了它們各自的行為,每乙個環境都有乙個與之關聯的...

作用域,變數作用域,作用域鏈知識

第2章 變數作用域 第3章 作用域鏈 預覽 1.全域性作用域 整個script標籤下 或者是單獨的js檔案 外部js 2.區域性作用域也叫 函式作用域 在函式內部就是區域性作用域 這個 的名字 變數 只在函式內部起作用和效果 3.不同作用域下,定義相同變數名是不衝突的。如果是在同一作用域宣告2個相同...

js 作用域鏈

作用域鏈 作用域鏈就是內部上下文的變數物件vo的列表,作用域鏈用來檢索上下文出現的識別符號,從而保證有序訪問所有變數和函式。乙個作用域鏈包括父級變數物件 variable object 作用域鏈的頂部 函式自身變數vo和活動物件 activation object 當查詢識別符號的時候,會從作用域鏈...