我的代码如下所示
var obj = { name: 'John' }
var x = obj.toString();// produce "[object Object]"
alert(x)
我想知道为什么 Object.prototype.toString
实现返回 [object Object]
而不是实现返回 "{name: 'John'}"
?
我的代码如下所示
var obj = { name: 'John' }
var x = obj.toString();// produce "[object Object]"
alert(x)
我想知道为什么 Object.prototype.toString
实现返回 [object Object]
而不是实现返回 "{name: 'John'}"
?
请查看@Leo和@Joel Gregory提供的规范解释。您可以使用JSON.stringify
来显示对象内容,例如:
const log = (...args) => document.querySelector("pre").textContent += `${args.join("\n")}\n`;
const obj = { name: 'John' }
log(obj.toString());
log(JSON.stringify(obj));
<pre></pre>
来自Mozilla https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/toString:
每个对象都有一个toString()方法,当对象被表示为文本值或以期望字符串的方式引用对象时,该方法会自动调用。默认情况下,toString()方法由从Object继承的每个对象继承。如果未在自定义对象中覆盖此方法,则toString()返回"[object type]",其中type是对象类型。