【发布时间】:2016-07-16 20:20:21
【问题描述】:
toString() 返回“[对象类型]”,因此toString.call(new Date) 返回[object Date],toString.call(new String) 返回[object String]。我很好奇“[object type]”的性质是什么:它不可能是一个数组,正如 [] 的使用所暗示的那样;如果它是一个对象,{type: object} 不是更丰富的语法吗?如果是字符串,为什么不直接返回例如“type”,其中 type 是对象的类型,例如 Date 和 String?
【问题讨论】:
-
这种行为没有特别的原因,除了它是原始实现所做的。它就是这样工作的,并且无法更改,因为大量软件都依赖于它。
-
如前所述,
toString返回一个包含左括号、构造函数、类型和右括号的字符串。括号没有特殊含义,它们不是数组,只是specification 所说的应该返回的方式。 -
注意你所说的“类型”不是type。在 ES5 中是内部的 [[Class]],在 ES6 中则更复杂。
标签: javascript object tostring