Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

看看you don`t know js里面有个闭包问题没理解

$
0
0

代码

function wait(msg) {
	setTimeout(function timer() {console.log(msg)}, 1000)
}
wait();

由于setTimeout实在全局执行,而timer作为参数传递出其声明的作用域,引用了msg并在外作用域执行,所有构成了闭包,这里是明白的。但是书中有这样一句话,没懂。

wait(…)在执行1000毫秒后,他的并不作用域并不会消失,timer函数依然保有wait()作用域的闭包

为什么1000毫秒后,timer已经执行完毕了,还说保有该闭包呢,此时不应销毁了吗?


Viewing all articles
Browse latest Browse all 14821

Trending Articles