NodeJS setInterval错误
阅读NodeJS书中的教程。 它给了我这个代码尝试setInterval:
var x = 0, y = 0, z = 0; function displayValues() { console.log("X=%d; Y=%d; Z=%d", x, y, z); } function updateX() { x += 1; } function updateY() { y += 1; } function updateZ() { z += 1; displayValues(); } setInterval(updateX, 500); setInterval(updateY, 1000); setInterval(updateZ, 2000);
它就像它应该的那样工作。 所以我试着制作我自己的更简单的版本:
var x = 0; function incrementX() { x++; console.log(x); } setInterval(incrementX(), 1000);
它不起作用。 它显示1秒后,然后给我这个错误消息:
timers.js:265 callback.apply(this, args); ^ TypeError: Cannot read property 'apply' of undefined
任何人都可以向我解释为什么第一个片段的作品,但第二个不是?
不要使用大括号()
setInterval(incrementX, 1000);
当你传递incrementX()
,实际上是传递由incrementX()
返回的结果而不是函数。 incrementX
是setInterval
期望的函数。