解析器如何解析以下表达式:new init()?

时间:2016-08-17 16:37:51

标签: javascript function parsing new-operator invoke

鉴于以下内容:

 function init() { return 1; }

解析器如何解析

 new init();

我的意思是为什么init()函数与new运算符一起使用?为什么函数没有独立调用?

1 个答案:

答案 0 :(得分:0)

  

为什么不单独调用函数?

仅仅因为这是规则。 newinit和参数括号是四个单独的标记,它们一起形成一个构造函数调用。如果new不存在,则三个标记将形成正常的函数调用。

要单独调用它,您可以编写new (init())new (init())()(当然不工作,因为init()不返回构造函数。)