1. 程式人生 > >js詞法作用域(靜態作用域)

js詞法作用域(靜態作用域)

開發十年,就只剩下這套架構體系了! >>>   

function foo() { console.log(a); } 

function bar() {
 var a = 3; 
 foo(); 
} 

var a = 2; 

bar(); // 2;

靜態作用域 ,就是在它執行之前就已經確定了它的作用域 (定義的時候就已經確定了。)找不到變數 就會往原型鏈上查詢變數

函式的作用域基於函式建立的位置

 

bar()執行時,執行foo(),foo定義在window下,內部找不到變數a,就往上找到window.a=2,打印出