javascript中的作用域和作用域链

JavaScript执行值会产生作用域,作用域是执行环境。

window对象执行会产生全局作用域,

每个函数执行的时候会产生这个函数的作用域,并将其放在函数作用域链的顶端,查找变量是由顶端往下查找。

函数执行完毕会销毁创造的作用域链,通过删除引用的方式,函数的作用域实际删除是通过垃圾回收删除的,但是一般情况下函数执行完毕,作用域本身也会被销毁,但如果是闭包,即函数内部返回了内部的一个函数,这个函数会引用作用域。

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

猜你喜欢

转载自www.cnblogs.com/sz-toosimple/p/11418363.html