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