我试图发布一个基本的JS
技巧问题,而且它显然也在欺骗我:)
在你的控制台中运行:
x = (w) => w.length;
setTimeout(console.log(x), 0);
每次运行setTimeout(console.log(x), 0);
时,您的数字都会越来越多。这是为什么?不应该将w
参数引用到window
对象吗?
答案 0 :(得分:10)
https://dotnetfiddle.net/aXQ99x返回一个值。您正在查看计时器ID,它是setTimeout的返回值,可以用作setTimout
调用的参数。
返回的timeoutID是一个用于标识的数字非零值 通过调用setTimeout()创建的计时器;这个值可以 传递给Window.clearTimeout()以取消超时。 [0]
[0] clearTimeout
w
参数不会引用窗口对象。 console.log返回undefined,因此永远不会调用你的函数。