深入理解js闭包
1.1 闭包:有权在一个函数内部可以访问另一个函数作用域并且将此函数返回
2.1 js中变量的作用域分为两种,全局变量和局部变量,简单来说,除了函数中定义的变量是局部变量外,其他的都是全局变量。
3.1 可以在函数外面访问函数里面的变量
3.2 可以保存函数中的变量值,不用担心调用函数时变量变化。
4.1 在函数外部访问函数内的变量,由于访问不到,所以要变通来访问函数中的变量,这种方法叫做闭包。
function a(){
var b=6;
console.log(b)//6
}
console.log(b);//error 访问不到b的值
4.2解决方法:可以函数中套用函数,将套用的函数作为返回值。由外部接收返回值,接收到的数值就是内部变量的变量值(函数中的子函数可以访问到父函数的变量值。)
function a(){
var b=6;
console.log(b)//6
function c(){
console.log(b)//6
};
c();
return function c(){
return b;
};
}
var e=a();
console.log(e());//6
5.1由于闭包会使得函数中的变量被保存到内存中,这样很消耗内存,所以一定要注意不能随便用闭包。但是可以在退出函数之前,释放不使的局部变量,以清理内存,保证浏览器性能。