🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 语法 闭包就是能够读取其他函数内部的变量的函数 ***** >[success]格式: 首先函数套函数,子函数调用父函数的变量, 并且子函数的变量被外界所引用。此时形成了闭包 优点:缓存数据,避免全局变量的污染 缺点:内存泄露问题 ```javascript //获取一个变量 function fun(){ var num = 10; function fun2(){ return num; } return fun2;//此时返回值是一个函数,需要加括号执行 } // 以上是闭包写法 缓存数据 var result = fun(); console.log(result);//拿到的是fun2函数体 console.log(result());//10 //获取两个变量 // 变量是两个以上的写法 //写法一 数组 /* function f1(){ var a = 10; var b = 20; return function f2(){ return [a,b]; } } var res = f1(); var a = res()[0]; var b = res()[1]; console.log(a,b); //10 20 */ // 写法二 对象 function f1(){ var a = 10; var b = 20; return [//数组里面乐意放函数 数组也是一个对象 function f2(){ return a; }, function f3(){ return b; } ] } var res = f1(); var a = res[0](); var b = res[1](); console.log(a,b); //10 20 ```