闭包
2020-11-25 本文已影响0人
hualayou
变量作用域
变量根据作用域的不同分为两种:全局变量和局部变量
1.函数内部可以使用全局变量
2.函数外部不可以使用局部变量
3.当函数执行完毕,本作用域内的局部变量会销毁
从外部读取函数内部的局部变量
function fun1(){
var num = 1;
function fun2(){
alert(num);
}
return fun2;
}
var f = fun1();
f();
在上面的代码中,函数fun2被包括在函数fun1内部,这时fun1内部的所有局部变量,对fun2都是可见的。但是反过来就不行,fun2内部的局部变量,对fun1就是不可见的。
闭包概念
闭包就是能够读取其他函数内部变量的函数。
上述代码中fun1就是一个闭包,简单说就是变量所在的函数。
闭包的用途
1.读取函数内部的变量
2.让变量始终保持在内存中,不会在函数执行后被自动清除