Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么setInterval()在我的ES6代码中不起作用?_Javascript - Fatal编程技术网

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

Javascript 为什么setInterval()在我的ES6代码中不起作用?,javascript,Javascript,我有一个名为main的类,其方法名为setDate()。在构造函数方法中,我放了一行:setInterval(main.setDate(),10000),它只在对象初始化时运行。如果我将该行作为尾部调用放入setDate()方法中,它将无限运行并中断浏览器会话。尝试传递函数引用 setInterval(main.setDate, 10000); 你在叫它。因此将调用该函数,并将其返回值作为第一个参数传递给setInterval 您还可以通过将函数调用作为字符串传递来实现所需的效果 setInt

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

尝试传递
函数引用

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

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

setInterval("main.setDate()", 10000);

但不建议传递字符串,因为它将
eval
放在窗口范围的引擎盖下。

不要传递字符串。@SLaks解释道。谢谢你指出。如果这是重复的,很抱歉。我找不到类似的问题。