为什么带有新函数的setTimeout会忽略等待间隔?

rip*_*234 4 javascript

尝试这样做时:

setTimeout(function(){alert("Boo");}, 500);
Run Code Online (Sandbox Code Playgroud)

我不小心写了这个:

setTimeout(new function(){alert("Boo");}, 500);
Run Code Online (Sandbox Code Playgroud)

前版本等待500毫秒,然后发出警报.后者立即发出警报.

为什么new在函数前面添加会导致此行为?

Dig*_*ane 5

使用new匿名函数作为构造函数创建一个新对象,因此您的函数会立即运行并发出警报.