匿名函数调用的问题

new function(){ alert("fff")};


new function(){ alert("fff") }();


new Function(){ alert("fff") }();


首先,第一个与第二个有什么区别呢,他们都可以执行。

为什么第三个会抛出错误 Uncaught SyntaxError: Unexpected token {

 

 感谢~


慕村9548890
浏览 644回答 1
1回答

慕仙森

前两个是等价的,原因是:new操作符实例化对象时,如果不带参数,那么括号可以省略。为什么报错?因为JavaScript中没有这种语法!写代码要按照规范写啊,不能自己乱造不存在的语法啊。用Function来构造函数时,函数体是以字符串形式做参数的。要改的话可以这样:new Function('alert("fff");')()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript