JavaScript中对象和对象之间的区别

时间:2012-10-02 18:44:24

标签: javascript

在下面的代码中: -

 var x = { } ;
    console.log(typeof x);             // o/p is object
    console.log(x instanceof Object ); //o/p is true

如果我在最后一行使用“对象”而不是“对象”,我会收到错误。为什么这样,当第二行的o / p是对象,小写“o”?

3 个答案:

答案 0 :(得分:6)

因为没有“对象”这样的东西。 Typeof不会为您提供类 - 它会返回原始类型。例如,typeof "string"会返回“字符串”。

'Object'是一个对象'primitive'的构造函数 - 所以new Object会给你一个'对象'来处理..但不要指望能够创建一个'新对象',因为'对象'不是作为构造函数存在的。

答案 1 :(得分:1)

您收到错误,因为您尚未定义名为object的变量。尝试读取尚未声明的变量是 ReferenceError

Object变量是环境的原生变量,并且被预定义为普通对象的构造函数。这就是为什么当你instanceof Object时它起作用的原因。 JavaScript中的每个本机对象都是Object的实例。

答案 2 :(得分:0)

Javascript区分大小写“对象”本质上是一个可以容纳任何东西的变量。 “对象”是一种实际的javascript类型。