在JavaScript中创建新对象时,何时需要括号和新关键字?

詹姆士

我正在研究JavaScript中的对象,并且在使用new关键字()创建对象时需要使用关键字和感到困惑

var a = new Date();     // current date and time
var b = Date();         // current date and time
var c = new Date;       // current date and time 
var d = Date;           // => function Date() { [native code] }

前三种方法有什么区别?为什么不d按预期做?

用户名

鉴于: new Date()

这是从构造函数1创建新对象的“标准”方法它返回一个代表当前时间的新Date对象。

鉴于: Date()

当未作为构造函数调用时,JavaScript将Date函数定义为以这种方式运行(即,使用new)。它返回的不同(字符串而不是Date对象)new Date()请参见为什么不使用new运算符就无法调用Date()类的方法

用户代码还可以检查this构造函数内部的值,以确定是否new使用了该代码,尽管这种操作很少发生。请参见如何检测一个函数是否被称为构造函数?

鉴于: new Date

使用new括号时,如果没有参数,则是可选的。这只是大多数人不使用的另一种语法形式-等同new Date()表达式终止。请参见使用“ new”运算符创建对象时,我们可以省略括号吗?

鉴于: Date

这会在调用表达式或创建新实例的情况下,将表达式计算为构造函数(仅是函数对象!2这就是为什么结果显示了“功能” -这是构造函数。


1我使用术语构造函数,以强调该构造是点只有一个函数,(也)支撑new; 从技术上讲,将其称为构造函数就足够了。

2同样,重要的是要了解JavaScript中的function [-objects]是一等公民,因此只看重自身。像任何物体一样。在最后一个示例中,对象/值的分配是在没有对对象本身执行任何操作(即函数调用)的情况下发生的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在JavaScript中创建新对象时,什么时候需要括号和新关键字?

来自分类Dev

为什么和何时在Access VBA中声明新记录集时使用New关键字?

来自分类Dev

在使用新关键字创建的对象上使用模仿

来自分类Dev

当我们使用new关键字创建新的DateTime(对象)时

来自分类Dev

创建带有和不带有新关键字的C ++对象

来自分类Dev

在没有新关键字的情况下创建的C ++中的struct对象的范围

来自分类Dev

在列表中搜索关键字并创建新列表

来自分类Dev

使用新关键字创建时在Spring存储库中自动装配

来自分类Dev

子功能中的Javascript新关键字

来自分类Dev

Java参考和新关键字

来自分类Dev

创建数组时何时需要使用“ New”关键字?

来自分类Dev

JavaScript避免使用新关键字

来自分类Dev

使用函数和“ new”关键字在Javascript中创建对象的设计的意图是什么?

来自分类Dev

在创建新的对象/类时,闭包可以使用new关键字,例如,区别是什么

来自分类Dev

关键字中的JavaScript对象冒号

来自分类Dev

Ruby何时需要do关键字?

来自分类Dev

在Javascript中将instanceof用于没有新关键字的自定义对象

来自分类Dev

在Javascript中将instanceof用于没有新关键字的自定义对象

来自分类Dev

default关键字会创建新实例吗?

来自分类Dev

为什么在创建数组时需要“ new”关键字?

来自分类Dev

为什么在创建数组时需要“ new”关键字?

来自分类Dev

新的DRF列表视图上的“无法将关键字'created'创建到字段中”

来自分类Dev

新的python async和await关键字

来自分类Dev

如何在javascript中的新样式匿名函数中访问此关键字

来自分类Dev

如何从scala.js访问新的javascript关键字?

来自分类Dev

在javascript中使用(this)关键字添加新属性

来自分类Dev

是否从C#复制了ES7中新的async和await关键字?

来自分类Dev

在声明和方法中两次调用新关键字

来自分类Dev

JavaScript检测何时创建新的对象属性

Related 相关文章

  1. 1

    在JavaScript中创建新对象时,什么时候需要括号和新关键字?

  2. 2

    为什么和何时在Access VBA中声明新记录集时使用New关键字?

  3. 3

    在使用新关键字创建的对象上使用模仿

  4. 4

    当我们使用new关键字创建新的DateTime(对象)时

  5. 5

    创建带有和不带有新关键字的C ++对象

  6. 6

    在没有新关键字的情况下创建的C ++中的struct对象的范围

  7. 7

    在列表中搜索关键字并创建新列表

  8. 8

    使用新关键字创建时在Spring存储库中自动装配

  9. 9

    子功能中的Javascript新关键字

  10. 10

    Java参考和新关键字

  11. 11

    创建数组时何时需要使用“ New”关键字?

  12. 12

    JavaScript避免使用新关键字

  13. 13

    使用函数和“ new”关键字在Javascript中创建对象的设计的意图是什么?

  14. 14

    在创建新的对象/类时,闭包可以使用new关键字,例如,区别是什么

  15. 15

    关键字中的JavaScript对象冒号

  16. 16

    Ruby何时需要do关键字?

  17. 17

    在Javascript中将instanceof用于没有新关键字的自定义对象

  18. 18

    在Javascript中将instanceof用于没有新关键字的自定义对象

  19. 19

    default关键字会创建新实例吗?

  20. 20

    为什么在创建数组时需要“ new”关键字?

  21. 21

    为什么在创建数组时需要“ new”关键字?

  22. 22

    新的DRF列表视图上的“无法将关键字'created'创建到字段中”

  23. 23

    新的python async和await关键字

  24. 24

    如何在javascript中的新样式匿名函数中访问此关键字

  25. 25

    如何从scala.js访问新的javascript关键字?

  26. 26

    在javascript中使用(this)关键字添加新属性

  27. 27

    是否从C#复制了ES7中新的async和await关键字?

  28. 28

    在声明和方法中两次调用新关键字

  29. 29

    JavaScript检测何时创建新的对象属性

热门标签

归档