代码
function wait(msg) {
setTimeout(function timer() {console.log(msg)}, 1000)
}
wait();
由于setTimeout实在全局执行,而timer作为参数传递出其声明的作用域,引用了msg并在外作用域执行,所有构成了闭包,这里是明白的。但是书中有这样一句话,没懂。
wait(…)在执行1000毫秒后,他的并不作用域并不会消失,timer函数依然保有wait()作用域的闭包
为什么1000毫秒后,timer已经执行完毕了,还说保有该闭包呢,此时不应销毁了吗?