【问题标题】:Simple Javascript OOP Confusion [duplicate]简单的Javascript OOP混淆[重复]
【发布时间】:2020-05-09 14:35:42
【问题描述】:

要在 javascript 中创建一个新的空对象,我们可以用 2 种方式编写。
1. 使用对象字面量语法:

const obj = {}

2.或者用构造函数语法:

const obj = new Object()

今天我不小心输入了const obj = new Object 看到它也有效,它应该扔到哪里 一个错误,因为我没有调用由一组括号完成的构造函数。

我知道带有构造函数的new 运算符做了三件事。
1. 创建一个新的空对象。
2. 将this 的值设置为新对象。
3. 从构造函数返回新创建的对象。


构造函数调用是可选的吗?
那么我错过了什么?

【问题讨论】:

  • new 运算符提供了完整的上下文(“创建一个新的实例”)。如果您不需要传递参数,则可以省略括号,就像例如你省略了结尾的分号。
  • 知道了!非常感谢 ???? @ÁlvaroGonzález

标签: javascript oop object


【解决方案1】:

作为一种特殊情况,仅对于 new 运算符,JavaScript 通过在函数调用中没有参数时允许省略括号来简化语法。以下是一些使用 new 运算符的示例:

o = new Object;  // Optional parenthesis omitted here
d = new Date();  

最初回答here

【讨论】:

  • 知道了!非常感谢?
猜你喜欢
  • 2019-04-16
  • 2013-01-01
  • 2013-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 2015-10-04
  • 2013-03-22
相关资源
最近更新 更多