javascript-Object.prototype.toString.call的结果(带有字符串)
我想通过javascript-Object.prototype.toString.call的结果(带有字符串),javascript,Javascript,我想通过Object.prototype.toString.call解决一个技术问题。在javascript中,当您调用函数“call”时,第一个参数是对“this”或您正在处理的对象的引用。所以我期望Object.prototype.toString.call(“aaa”)会产生“aaa”,就像调用时的“aaa.toString()一样 相反,它会让步 “[对象字符串]” 这是为什么?中明确解释了Object.prototype.toString的行为 值得注意的步骤是 3) 设O为对象(此值
Object.prototype.toString.call解决一个技术问题。在javascript中,当您调用函数“call”
时,第一个参数是对“this”或您正在处理的对象的引用。所以我期望Object.prototype.toString.call(“aaa”)
会产生“aaa”,就像调用时的“aaa.toString()
一样
相反,它会让步
“[对象字符串]”
这是为什么?中明确解释了
Object.prototype.toString
的行为
值得注意的步骤是
3) 设O为对象(此值)。7) 否则,如果O是一个奇异的字符串对象,那么让builtinTag为“String”。
19) 返回串接“[object”、标记和“]”的结果字符串 因此,正如您所看到的,字符串文字(它是一种基本类型,不是对象)首先被转换为字符串对象,然后被标记为
字符串
,然后返回输出[object string]
参考资料:
- 中明确解释了
Object.prototype.toString
的行为
值得注意的步骤是
3) 设O为对象(此值)。7) 否则,如果O是一个奇异的字符串对象,那么让builtinTag为“String”。
19) 返回串接“[object”、标记和“]”的结果字符串 因此,正如您所看到的,字符串文字(它是一种基本类型,不是对象)首先被转换为字符串对象,然后被标记为
字符串
,然后返回输出[object string]
参考资料:
Object.prototype.toString
与String.prototype.toString
不同,基本上你是在做传递对象的原型的toString,而不是对象本身的toString。这是一种计算变量是什么类型的对象的方法,而不是简单地获取变量的字符串表示形式。因为object.prototype.toString
与string.prototype.toString
不同,基本上你是在做传递对象的原型的toString,不是对象本身的toString。它是一种计算变量是什么类型的对象的方法,而不是简单地获取变量的字符串表示形式。