KonishiLee's Blog

闭包介绍

概述

维基百科解释闭包:指引用了自由变量的函数。

johnhax:闭包就是内部函数能访问外部的变量。

1
2
3
4
5
6
7
8
9
10
11
12
function foo() {
var i = 0;
function bar() {
i += 1;
console.log(i);
}
return bar;
}
var test = foo();
test(); // 1
test(); // 2
  • 1.bar函数是内部函数,即定义在foo函数内部
  • 2.foo函数调用之后会将bar函数的引用作为返回值
  • 3.全局作用域中有变量引用了bar函数,即bar函数还处于活动状态

于是在foo函数已经被调用结束之后,其内部的i变量仍然没被销毁,而且在每次调用bar函数之后,其值是一直在递增的。

如果喜欢这个分享,就帮忙买杯咖啡吧