gpt4 book ai didi

javascript - 什么时候必须在 Javascript 中使用 new 关键字?

转载 作者:行者123 更新时间:2023-12-01 02:27:55 25 4
gpt4 key购买 nike

有时我应该调用 new Foo() 来创建一个新的 foo 对象,但有时我可以只调用 Foo() 来创建它。

一般来说,对于给定的函数,我如何知道使用哪个?

最佳答案

new 是什么意思?关键字做什么?

参见this question .

什么时候应该使用new关键字?

  • 如果目标函数有 .prototype.并且它不返回任何内容(或者返回 this ),那么您应该使用 new获取带有该原型(prototype)的对象。 (尽管有些人 recommend using Object.create(...) 作为更清晰的替代方案。)

  • 或者,如果目标函数将内容分配给 this.foo ,并且您不认为它正在尝试在全局对象上设置内容,那么您应该使用 new 来调用它.

什么时候不应该使用new关键字?

  • 如果您调用工厂函数来创建新对象,则不需要使用 new关键字。

    工厂函数通常会自行创建新对象,然后返回它。它将使用 { ... } 创建对象或Object.create(...)或者通过调用另一个函数,甚至使用 new本身。

如果不使用 new 会发生什么关键字?

如果您调用Foo()那么 Foo 函数的主体将以 this 运行指向全局对象(或在严格模式下,使用 this === undefined )。如果函数分配 this.foo那么这些最终将修改全局。这是你想要的吗?

关于javascript - 什么时候必须在 Javascript 中使用 new 关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48595188/

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