我试图发布一个基本的JS技巧问题,它显然也欺骗了我:)
在您的控制台中运行:
x = (w) => w.length;
setTimeout(console.log(x), 0);
Run Code Online (Sandbox Code Playgroud)
每次你跑步,setTimeout(console.log(x), 0);你都会得到越来越多的数字.这是为什么?w参数不应该引用到window对象?
Rya*_*yan 10
setTimout返回一个值.您将看到计时器ID,它是setTimeout的返回值,可用作clearTimeout调用的参数.
返回的timeoutID是一个非零数值,用于标识调用setTimeout()创建的计时器; 可以将此值传递给Window.clearTimeout()以取消超时.[0]
[0] https://developer.mozilla.org/en-US/docs/Web/API/WindowTimers/setTimeout
该w参数不会引用窗口对象.console.log返回undefined,因此永远不会调用您的函数.