我目前正在开发JavaScript解析器,并研究ECMAScript 5.1 specification。这是一个使我感到困惑的问题。

§ 11.2左侧表达式定义了以下NewExpression的产生:

NewExpression :
    MemberExpression
    new NewExpression

如果我没有看错,那么NewExpression可能类似于
new new Something

(实际上,任何数量的new。)

这完全使我感到困惑。 new Something如何潜在地返回您可以再次使用new的任何内容?有可能吗?

最佳答案

根本不常见,但有可能。返回函数的函数:

function baz(){}
function foo(){return baz}

new new foo() instanceof baz // true

09-29 22:57