我正在阅读一本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函数?是第一个未命名的函数,在内存中的某个地方或类似的东西后面仍然有效吗?