为什么JavaScript在valueOf()返回[object Object]而不是[object]?

17
JavaScript的valueOf()方法为什么返回[object Object]而不是只返回[object]呢?是否有特定原因?
1个回答

16
第二个Object是对象实现的接口。例如,document.body.valueOf()将返回[object HTMLBodyElement]

3
+1 很好的答案。另外,尝试简单地使用 alert(valueOf),你会得到 [object global] - James Wiseman
但是是否存在第一个不是“object”而是其他东西的情况-因为在JavaScript中一切都是对象呢? - pencilCake
@pencilCake 很好的问题。默认情况下不会(可以简单地查看valueOf()如何处理字符串、函数、数组等),但是您可以重写valueOf。String.prototype.valueOf = function() { return "[foo Bar]"; }; 会导致"qux".valueOf()返回[foo Bar] - duri
这意味着第一个对象是多余的吗? - Lie Ryan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接