https://zh.javascript.info/closure#step-4-fan-hui-han-shu
每个函数调用都会形成独立的外部词法环境
function makeCounter() {
let count = 0;
return function() {
return count++;
};
}
let counter = makeCounter();
let counter2 = makeCounter();
alert( counter() ); // 0
alert( counter() ); // 1
alert( counter2() ); // 0
alert( counter2() ); // 1
函数 counter 和 counter2 是通过 makeCounter 的不同调用创建的。
因此,它们具有独立的外部词法环境,每一个都有自己的 count。