一,闭包是什么
闭包是:函数内部和函数外部连接的桥梁;可以读取其他函数内变量的函数;
可以访问外部函数的变量,并将这些变量保存在内存中,供内部函数在外部函数执行完毕后继续使用;
常被用于工厂函数、模块化等场景。
二,闭包优缺
优点:加强封装性,达到对变量的保护作用,更加方便调用局部变量
缺点:内存浪费,容易造成内存泄漏
三,闭包示例
1.函数赋值
function aFunction(){
let aName = 'hello'; function bFunction(){ //处理数据 console.log(aName) } return bFunction; } aFunction(); // 输出:hello
2.返回值
function aFunction(){
var name = 'hello'
return function (){return name}
}
aFunction();//输出:hello
3.循环赋值
每执行一次,分别输出i(1-10) let块级作用域,每次迭代都会声明
for(let i= 1;i<10;i++){
setTimeout(
function(){//打印i}
,1000);
}