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()返回的结果而不是函数。 incrementXsetInterval期望的函数。