Object()构造函数内置的特殊行为

时间:2015-09-18 14:37:48

标签: javascript

我正在阅读一本书,

  

Object() 构造函数内置了更多特殊行为。   如果您将更多 特定的本机对象类型 作为参数传递给    Object()构造函数 ,实际上 type-detect 并返回    正确的原生对象类型,自动构建

例如,

  

新对象(“foo”) 会产生与调用 new相同的效果   字符串( “foo” 的)。

这两件事怎么可能是一样的。

但是

alert(new Object("foo") === new String("foo"));  // false

上述句子( 新对象(“foo”) )对作者的具体含义是什么......?

1 个答案:

答案 0 :(得分:3)

在JavaScript中,您无法使用===来比较对象。这样做是检查两者是否是相同的对象(不是它们具有相同的值)。

该段落的内容如下:

new Object("foo") => new String("foo")
new Object(3) => new Number(3)
new Object(true) => new Boolean(true)
new Object([]) => new Array()

因此,它不会返回Object,而是指出您传递的内容并返回 类型的对象。

没有任何理由这样做。你不应该new Object("foo")new String("foo"),你应该"foo"

以下是原生类型:

new Object() => {}
new Array() => []
new String('foo') => 'foo'
new Number(3) => 3
new Boolean(true) => true