js闭包

发布时间 2023-08-24 17:26:00作者: Ali枝

一,闭包是什么
闭包是:函数内部和函数外部连接的桥梁;可以读取其他函数内变量的函数;
可以访问外部函数的变量,并将这些变量保存在内存中,供内部函数在外部函数执行完毕后继续使用;
常被用于工厂函数、模块化等场景。

二,闭包优缺
优点:加强封装性,达到对变量的保护作用,更加方便调用局部变量
缺点:内存浪费,容易造成内存泄漏

三,闭包示例

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);
}