理解定义
个人的理解:闭包就是能够读取其他函数内部变量的函数。
闭包的好处:
1.保护函数内的变量安全 ,实现块级作用域或私有变量的概念
2.在内存中维持一个变量,可以做缓存
闭包的注意点:
1.闭包会使得函数中的内容一直被保存在内存中,内存消耗大。
2.闭包涉及跨上下文访问,所以会导致性能损失
3.闭包能产生块级作用域、私有变量、私有方法的作用,但也因此容易造成变量方法之间的混淆。
闭包的应用场景
1.延迟函数setTimeout
2.自执行函数进行模块化保存
for(var i;i<arr.length;i++){
(function(){
console.log(i);
})()
}
console.log(i);
3.es6中的块级作用域(使用let/const定义的变量)