function test() {
let num = 123;
setInterval(function () {
console.log(num);
}, 1000);
console.log('over');
}
test();
console.log('over again');
我原以为输出over和over again后,会每隔一秒输出一个undefined, 实际上却输出123 ?
###学习一下闭包吧,很明显的一个闭包。
###因为setInterval
里用到这个num
了,所以它并不会被释放。
let语句声明是一个块级作用域的本地变量。
因为你用到num了,所以JavaScript就不会把这个变量释放啊。
又搜了一下闭包别人写到闭包 https://zhuanlan.zhihu.com/p/...
看来,确实是我对闭包的理解有偏差