gpt4 book ai didi

javascript - new MyFunction() 与 new(MyFunction)

转载 作者:数据小太阳 更新时间:2023-10-29 05:53:00 26 4
gpt4 key购买 nike

我正在查看 Vows documentation并且在几个地方它使用语法

var myVar = new(MyFunction);

例如

var promise = new(events.EventEmitter);

我熟悉 new MyFunction()new MyFunction(是的,我已经阅读了 this question)。但是上面的语法对我来说是新的——它看起来像一个函数调用,但我怀疑它只是添加了一些括号的 new MyFunction。这些使用 new 的方式有什么区别吗?如果不是,是否有任何好的论据支持使用其中之一?我原以为 new MyFunction() 是最清晰的。

如果这是重复的,我深表歉意 - 我搜索过但找不到。

最佳答案

它们看起来是一样的,只是括号在不同的地方,可能是风格上的,也可能是为了让作者更清楚。以下都是相同的:

function Foo() { this.now = new Date(); }
var f1 = new Foo;
var f2 = (new Foo);
var f3 = new(Foo);
var f4 = new Foo();
var f5 = (new Foo());

请注意,下面的形式不同,因为“Foo”函数被直接调用(由于括号的优先级),没有返回任何内容(未定义),这是"new"运算符的无效参数(因为“未定义” "不是函数):

var x = new(Foo()); // TypeError: undefined is not a function

关于javascript - new MyFunction() 与 new(MyFunction),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9883495/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com