- A+
所属分类:Web前端
闭包(三点)
定义
闭包就是函数嵌套函数, 内部函数就是闭包.
特性
正常情况 函数执行完成内部变量会销毁 而闭包 内部函数没有执行完成,外部函数变量不会被销毁。
//闭包 function outerfun() { let a = 10;//特性执行完销毁 function innerFun() {//内部函数 console.log(a); } return innerFun; } let fun = outerfun();/*outerfun作为返回值赋值给fun 没有执行完成 所以有10,如果内部函数被调用那么外部函数不会被销毁 let 有 10*/ fun();//10
应用(闭包可以封装一段代码)
//应用 //未封装 let aa = 10;//全局变量 let bb = 20; function add() { return aa + bb; } function sub() { return aa - bb; } let res1 = add(); let res2 = sub(); console.log(res1, res2);//30.-10
使用闭包封装
//闭包封装 利用闭包实现模块化的功能 let modouble = (function () {//匿名函数 let aa = 10;//局部变量 let bb = 20; function add() { return aa + bb; } function sub() { return aa - bb; } return { add: add, sub: sub, } })()//小括号 声明后直接调用 let ress = modouble.add(); let resss = modouble.sub(); console.log(ress, resss);//30,-10