如图,为啥第二个f1()输出为2,
闭包
印象中var是全局,你改成let i=0试试?
闭包导致变量保存下来了
没毛病,你的误区是作用域。
f1 = f() 所以得到了一个返回函数。
f1 调用的时候是全局作用域,全局没有i, 只能声明i然后++编程了1
你再次调用肯定还是 + 1
这个是闭包,i被保存起来了。闭包的特点就是 函数 return 函数 .这样return的函数就能访问外面的函数里的变量,且变量不会被销毁