当内部函数被保存到外部时,将会生成闭包。闭包会导致原有的作用链不释放,造成内存泄漏。
内存泄漏:原本要释放的数据不被释放,导致占用内存,内存越来越小,加载速度就越慢
b在a里面被定义,就会在a执行完的基础上用a的劳动成果执行自己
b在a里面被定义,a的值被++,b在a的值++得基础上再a++;a在return b的时候剪断与ao连接的线,但是b已经保存了a的ao;所以会在a执行后值的基础上再++然后得到b执行后的数据
闭包的防范
闭包会导致多个执行函数公用一个公有变量,如果不是特殊需求,应尽量防止这种情况发生
触发多个函数公用一个公有变量:
利用一次性函数消除一个函数共用一个公有变量:
闭包的作用
实现公有变量
函数累加器
可以做缓存(存储结构)外部不可见,但是确实有存储结构
eater
可以实现封装,属性私有化
Person();
模块化开发,防止污染全局变量
一个关于基础知识的题: