ES5之前JS是没有局部变量的,所以程序员发明了闭包。
闭包作用:避免变量被环境污染
1.函数作为返回值
function F1(){
var a = 100;
return function(){
console.log(a)
}
}
var f1 =F1();
var a = 200;
f1()//100
函数作为参数传递
function F1(){
var a = 100;
return function(){
console.log(a)
}
}
var f1 =F1();
function F2(fn){
var a = 200;
fn();
}
F2(f1)