![]() |
1
3
语言级别的JavaScript没有指定使用构造函数的特定标准方式。当您定义自己的构造函数时,可以选择将其作为构造函数调用(使用
不是真的。这个
这个
这里有一个注释,因为许多构造函数也可以在没有
如果你是理智的,你就不会设计一种语言的默认类库。但是JavaScript不是一种理智的语言。这是一个很快就失控的黑客,在任何人花时间改进它的设计之前,就已经获得了大众的欢迎。期待它始终如一的表现,你只会失望。 |
![]() |
2
2
这个
从第15.3.1节: 作为函数调用的函数构造函数
还有一些内置构造函数的行为与此类似,例如 Array constructor called as a function :
其他构造函数,如
原语值包装器
(
前三个如果你用不用
如果你把它们和
这种物体叫做
原始包装
,它们有一个名为
使用创建的对象
的语义
|
![]() |
3
1
你可以从构造器中判断你是否被调用过
很有可能(有些人比其他人更喜欢它)把它放在构造器的顶部
讨论这个问题的一个问题是 Is JavaScript 's ânewâ Keyword Considered Harmful? . 还有其他的。 |
![]() |
4
1
你
可以
从JavaScript中的一个ctor“return”返回一个不同的值——一些内置函数(例如Date)的工作方式是这样的(函数也是这样,但它的工作方式不同于Date:-)。
下面是一个虚构的示例,演示如何创建一个类似“Function”(在FF中)的ctor:
|
![]() |
5
0
这是因为
|
![]() |
6
0
不知道你的问题是什么。。。我可以告诉你的是,基本对象中有代码,允许你用new和without new调用它,但是它们的行为有点不同。
对基本类型调用new将返回包装为对象的原语。 我写了一篇关于创建使用或不使用新操作符的构造函数的博客 http://js-bits.blogspot.com/2010/08/constructors-without-using-new.html 我不用,但很有趣。它将让您了解如何根据是否使用new调用函数来更改函数的行为。。。。 即使在这咆哮之后,我仍然不确定你的问题是什么。。。 |
![]() |
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 4 月前 |
![]() |
Alex · 在轻量级中同时解构和不解构变量 4 月前 |
![]() |
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 4 月前 |
![]() |
bairog · 从按属性筛选的对象数组字典中创建值数组 4 月前 |
![]() |
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 4 月前 |