什么是“[对象类型]”

时间:2016-07-16 20:20:21

标签: javascript object tostring

toString()返回“[对象类型]”,以便toString.call(new Date)返回[object Date]toString.call(new String)返回[object String]。我很好奇“[对象类型]”的本质是什么:它不能是一个数组,因为[]意味着使用;如果它是一个对象,那么{type: object}是不是一个更具信息性的语法?如果它是一个字符串,为什么不返回例如“type”,其中type是对象的类型,如DateString

1 个答案:

答案 0 :(得分:3)

这正是javascript语言规范所说的toString方法应该做的事情

  1. 如果未定义此值,请返回" [object Undefined]"。如果 此值为null,返回" [object Null]"。
  2. 设O是调用ToObject传递此值的结果 论证。
  3. 让class为O的[[Class]]内部属性的值。
  4. 返回串联的结果的String值 三个字符串" [对象",类和"]"。
  5. 正如oriol指出的ECMASCRIPT 2015(也称为ES6)使toString方法更复杂一些。它找出它处理的对象类型的方式有点冗长。您可以看到新规范here Source