在以下示例中:
let s = {x: 1, y: 1};
console.log(s, s.toString());
'[object Object]'
方法在哪里定义?为什么打印对象的结果与执行object.toString((不同?
各种环境的控制台通常用于调试(因此进行了优化(。如果您记录一个对象,控制台可能会向您显示该对象的完整、可读、交互式视图。控制台不会在显示日志值之前将其转换为字符串,这对调试没有帮助。
当一个对象调用了Object.prototype.toString
时,它需要在规范中完成这些步骤,这将导致记录[object SOMETHING]
,其中SOMETHING可能是Array
、Function
等,如果这些特殊情况都不匹配,则可能是Object
。对于普通对象,没有任何特殊情况匹配,因此您得到[object Object]
。
用JSON.stringify()
替换s.string()
。。。
请参阅此处。。。什么';与JSON.stringfy((相比,使用toString((有什么不同?用于进一步