【发布时间】:2021-04-16 23:49:56
【问题描述】:
我想知道为什么这个简单的回调函数 (setTimout) 会被调用,即使我没有调用而是分配它。
在这段代码中,我将 setTimeout 函数分配给变量 foo。
所以我认为返回值应该存储在变量 foo 中
而且它不需要执行和打印'hello',因为我没有调用那个函数。
但是为什么它被调用并打印'hello'?如果我只想将其分配并存储到变量怎么办?
还有这个函数怎么可以是数字类型,返回值为2??
const foo = setTimeout(() => console.log('hello'), 2000);
// hello ( after 2 seconds )
console.log(typeof foo);
// number
console.log(foo);
// 2
提前致谢
【问题讨论】:
-
立即调用 setTimeout 并将超时 ID 分配给 foo。您可能在 setTimeout 之前忘记了
() =>。 -
您应该更仔细地阅读文档。 developer.mozilla.org/en-US/docs/Web/API/…
标签: javascript callback settimeout