为什么setInterval()在我的ES6代码中不起作用?

Bac*_*777 1 javascript

我有一个名为main的类,其方法名为setDate().在构造函数方法中,我放了一行:setInterval(main.setDate(), 10000)它只运行对象实例化的初始时间.如果我将该行作为尾调用放在setDate()方法中,它将无限运行并中断浏览器会话.

Raj*_*amy 7

试着通过function reference,

setInterval(main.setDate, 10000);
Run Code Online (Sandbox Code Playgroud)

你在叫它.因此将调用该函数,并将其返回值作为第一个参数传递给setInterval.

您还可以通过将函数调用作为字符串传递来实现所需的效果,

setInterval("main.setDate()", 10000);
Run Code Online (Sandbox Code Playgroud)

但是不推荐传递字符串,因为它会eval在窗口范围内引起注意.

  • 不要传递字符串. (2认同)