Javascript的函数闭包,就是在调用函数时,通过返回一个携带该函数上下文的环境,获取本不可以被外部访问的数据。
下面是一个例子:
1 |
|
注意⚠️:正常的函数在执行完毕后,会通过GC回收函数里被创建的资源。但是因为通过返回函数闭包(包含函数上下文),导致在函数中创建的所有变量(即使它们原本的目的只是作为临时变量)都被保存了下来。
上下文
闭包由于有被执行函数的完整上下文,所以可以通过
1 |
|
由于变量
接下来,我们把问题复杂化一点,看下面这个例子,来感受一下上下文
1 |
|
执行
通过这个规律,我们其实可以发现,
- 而特别地:
1 |
|
1.当直接调用函数时(
2.使用