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

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

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

var a = 2; 

bar(); // 2;

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

函數的做用域基於函數建立的位置code

 

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

相關文章
相關標籤/搜索