js闭包
首先,我们要了解的概念:
全局变量,局部变量
变量生命周期
假如你想统计一些数值,且该计数器在所有函数中都是可用的。
实际上,在 JavaScript 中,所有函数都能访问它们上一层的作用域,闭包可以创建额外的scope
还记得函数自我调用吗?
解决计数器困境:闭包
自我调用函数只执行一次。设置计数器为 0。并返回函数表达式。
最终目的:
1. 保护函数的内部变量安全
首先,我们要了解的概念:
全局变量,局部变量
变量生命周期
假如你想统计一些数值,且该计数器在所有函数中都是可用的。
实际上,在 JavaScript 中,所有函数都能访问它们上一层的作用域,闭包可以创建额外的scope
还记得函数自我调用吗?
解决计数器困境:闭包
自我调用函数只执行一次。设置计数器为 0。并返回函数表达式。
最终目的:
1. 保护函数的内部变量安全
2. 在内存中维持一个变量,防止被GC
常用场景
场景一:采用函数引用方式的setTimeout调用
场景二:将函数关联到对象的实例方法
场景三:封装相关的功能集
具体以后再补充,现在只是了解阶段,并未能理解