【发布时间】:2023-02-06 01:12:57
【问题描述】:
我知道我的问题可能会被否决并关闭,但我对这个问题真的很困惑。
在某些地方,他们说Array、Date和Object是内置类。但是,我发现它们都可以在没有 new 的情况下被调用,这在类中是不可能的。
即使 Map、Set 等...如果没有 new 也无法调用。在尝试获取它们的定义时,所有这些都会显示类似 function ItsName() { [native code] } 的内容,而我认为一个类应该显示类似 class ItsName { [native code] } 的内容。
请不要在没有至少将我指向某个地方的情况下关闭问题,我可能会得到解释。
【问题讨论】:
-
JavaScript 已经发展了很长时间。 Map 和 Set 是很多比 Array 和 Date 更新。
-
所以因为 Array 和 Object 比较旧,所以可以不用 new 来调用,而 Map 和 Set 不能不用 new 来调用,因为不叫它们 new 是不尊重的。
-
好吧,它比那复杂一点。在没有
new的情况下调用时,较旧的构造函数具有不同的语义,虽然它可能有点不雅,但很有意义。如果没有new,Map()会有什么样的行为尚不清楚。另请注意,Symbol表示一类项目,但它不能被调用new。最后,这些都是标准委员会决定的事情,我们对此无能为力。 -
请注意,您可以编写自己的函数以使其坚持使用
new调用。
标签: javascript function class constructor built-in