我想通过Object.prototype.toString.call
找出技术问题。在javascript中,当您调用函数 "call"
时,第一个参数是对 "this"
的引用,或者您正在处理的对象。所以我期待Object.prototype.toString.call("aaa")
会产生" aaa",就像你打电话给"aaa".toString()
一样。
相反,它会产生
" [object String]"。
为什么?
答案 0 :(得分:0)
Object.prototype.toString
中明确解释了String
的行为。
值得注意的步骤是
3)设O为ToObject(此值) 7)否则,如果O是一个奇特的String对象,让builtinTag为“String” 19)返回串联“[object”,tag和“]”的结果的字符串。
因为您可以看到字符串文字(它是基本类型而不是对象)首先转换为字符串对象,然后标记为[object String]
,然后输出WeChat
是返回。
参考文献: