深入理解js闭包

深入理解js闭包

1.闭包的含义

1.1 闭包:有权在一个函数内部可以访问另一个函数作用域并且将此函数返回

2.想要了解闭包,首先要理解函数的作用域

2.1 js中变量的作用域分为两种,全局变量和局部变量,简单来说,除了函数中定义的变量是局部变量外,其他的都是全局变量。

3. 闭包的作用

3.1 可以在函数外面访问函数里面的变量

3.2 可以保存函数中的变量值,不用担心调用函数时变量变化。

4. 什么是闭包

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. 要注意

5.1由于闭包会使得函数中的变量被保存到内存中,这样很消耗内存,所以一定要注意不能随便用闭包。但是可以在退出函数之前,释放不使的局部变量,以清理内存,保证浏览器性能。

你可能感兴趣的:(深入理解js闭包)