[object Object]是JavaScript对象的默认字符串表示形式。
我会理解它是[Object]
还是[object]
,但为什么[object Object]
?为什么第一个单词是小写,第二个单词是大写?它是JSON还是JavaScript的一部分?
答案 0 :(得分:48)
所有对象都有toString
方法,以[object type]
格式显示某些内容,其中type是对象类型。
在null
上调用时,您获得[object Null]
,并且在对象上调用时,您会获得字符串[object Object]
,因为它基于Object constructor(大写“O”),这就是为什么它说object
两次,它是对象类型的对象。
JSON是一种轻量级的数据交换格式,除了被命名为“JavaScript Object Notation”之外,它与JavaScript没有任何关系,因为它的编写方式类似于JavaScript对象。
答案 1 :(得分:15)
我会理解它只是[Object]或[object],但为什么[object Object]?
因为它是从基本Object
类创建的对象。
来自the spec:
返回String值,该值是连接三个字符串" [object",class,"]"的结果。
它是JSON还是JavaScript的一部分?
它与JSON完全无关。
答案 2 :(得分:10)
第一个object
表示被记录事物的类型是一个对象。它也在语言规范here中进行了硬编码。
第二个Object
表示构造函数属性,例如:
Object.prototype.toString.call(""); // [object String]
该算法只是说:“获取对象的[[class]]属性,然后返回'[object'+ class +']'。
答案 3 :(得分:3)
你基本上击中了洞穴的柏拉图墙。如果一切都是对象,那么对象的超集是什么?在这里,答案体现在代码中,它只是对象。
因此所有对象都是对象。
欢迎来到圆形。