1.ES6常用功能与常见问题分析-(闭包)
关于闭包:
当一个内部函数被其外部函数之外的变量引用时,就形成了一个闭包。闭包的作用,改变变量的作用域。
例1:
const foo = () =>{
const a =0;
return fun = () =>{
a+=1;
}
}
let f1=foo()
f1();
例2:
function outer() {
var a = 100; // outer的局部变量
function inner() { // 闭包
console.log(a);
}
return inner; // 没有这条语句,闭包起不到在outer外部访问变量a的作用~
}
console.log(a); // 在外部直接访问a出错
var test = outer(); // outer运行完返回inner,赋值给test
test(); // 100,执行test(),相当于执行inner(),这样就可以访问到outer内部的a了