以下内容为我的理解,仅供参考
一、什么是闭包
二、闭包的原理与实现
定义一个外部函数outer,在其内部有一个局部变量a,一个内层函数inner,inner在其作用域链上可以访问并操作a,外部函数outer将inner作为返回值返回,此时将此返回值(inner)赋值给一个全局变量b,因为b永远保持在内存中,所以对应的inner–>a–>outer这一变量环境也被一并保存住,即形成闭包。
三、闭包优缺点
优点:保有私有变量,方便访问,防止全局污染;变量重用,防止被非法篡改
缺点:占用更多内存空间
四、示例:闭包计数器与私有方法
1 | function createCounter(counterName) |
参考链接: