我正在阅读一本书,
Object() 构造函数内置了更多特殊行为。 如果您将更多 特定的本机对象类型 作为参数传递给 Object()构造函数 ,实际上 type-detect 并返回 正确的原生对象类型,自动构建 。
例如,
新对象(“foo”) 会产生与调用 new相同的效果 字符串( “foo” 的)。
这两件事怎么可能是一样的。
但是
alert(new Object("foo") === new String("foo")); // false
上述句子( 新对象(“foo”) )对作者的具体含义是什么......?
答案 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