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
相关文章
相关标签/搜索