1.闭包-面试重灾区
最近面试的过程中,但凡问到JavaScript闭包的时候,一脸懵逼的情况的占多数。
闭包这个东西,你说它重要吧,确实很重要,毕竟这是很多前端框架广泛使用的开发技巧。你说他不重要吧,也确实没那么重要,因为我们开发项目基本都是套用现有的框架,在框架的范围里面写代码,很少会用到闭包。
可是,耐不住面试经常要问啊。
这一节,我们就来聊聊闭包的话题!
2.什么情况会产生闭包
先看一个例子:
function f(){
let a = 1;
return function(){
console.log(a);
}
}
f()()
a是函数f内部的一个变量,按理说函数结束后,外面就没法访问到a了。
可是假如我们用一个函数访问到a,然后再把这个函数返回出去,就延续了a的生命周期。
上面代码的结果是1。
不仅如此,我们还可以在外面反复地操作a。
3.闭包将产生幽灵般的鬼魅变量
上面的例子中,我们把a变量悄悄地送出了函数f,接下来我们可以对它进行反复蹂躏!
func