javascript中的做用域和做用域鏈

JavaScript執行值會產生做用域,做用域是執行環境。閉包

window對象執行會產生全局做用域,函數

每一個函數執行的時候會產生這個函數的做用域,並將其放在函數做用域鏈的頂端,查找變量是由頂端往下查找。spa

函數執行完畢會銷燬創造的做用域鏈,經過刪除引用的方式,函數的做用域實際刪除是經過垃圾回收刪除的,可是通常狀況下函數執行完畢,做用域自己也會被銷燬,但若是是閉包,即函數內部返回了內部的一個函數,這個函數會引用做用域。code

function a(){
  var num = 10;
  function b(){
     num++;
    console.log(num)
   }  
  console.log(num)
  return b;
}
var f1 = a();  //10
var f2 = a();   //10

f1();      //11
f2();      //11

a();  //10
相關文章
相關標籤/搜索