javascript - 带字符串的Object.prototype.toString.call的结果

时间:2015-12-09 09:53:55

标签: javascript

我想通过Object.prototype.toString.call找出技术问题。在javascript中,当您调用函数 "call" 时,第一个参数是对 "this" 的引用,或者您正在处理的对象。所以我期待Object.prototype.toString.call("aaa")会产生" aaa",就像你打电话给"aaa".toString()一样。

相反,它会产生

  

" [object String]"。

为什么?

1 个答案:

答案 0 :(得分:0)

Object.prototype.toString中明确解释了String的行为。

值得注意的步骤是

  

3)设O为ToObject(此值)   7)否则,如果O是一个奇特的String对象,让builtinTag为“String”   19)返回串联“[object”,tag和“]”的结果的字符串。

因为您可以看到字符串文字(它是基本类型而不是对象)首先转换为字符串对象,然后标记为[object String],然后输出WeChat是返回。

参考文献: