范围如何在此Javascript代码中工作?

时间:2016-11-21 03:44:00

标签: javascript scope ecmascript-6 closures

我正在阅读一本Javascript(ES6)书,而在第7章(范围)中,有一个不起眼的例子(至少对于我作为初学者而言)我无法包裹我的头脑。周围。

const f = (function() {
            let count = 0;
            return function() {
                return `I have been called ${++count} time(s).`;
                }
            })();

f(); // "I have been called 1 time(s)."
f(); // "I have been called 2 time(s)."
//...

因此,count变量初始化为0但是,为什么它的值仍然是#34; alive"在后续调用f函数?是第一个未命名的函数,在内存中的某个地方或类似的东西后面仍然有效吗?

0 个答案:

没有答案