为什么console.log(obj)显示obj的结构而不是toString()的返回值

时间:2014-03-12 10:05:12

标签: javascript

我有一个具有以下结构的对象

var obj = {
    toString: function(){ return "20" },
    valueOf: function(){  return 10; }
};

alert(obj) //20
console.log(obj) //Object {toString: function, valueOf: function}

与alert(obj)不同,为什么console.log(obj)显示对象结构而不是toString()的返回值?

在两个场景中都期待字符串文本。

3 个答案:

答案 0 :(得分:2)

这只是为了调试。
想在控制台中看到obj.toString()吗?使用:

Console.count(obj); //also will show how many times obj has been invoked

有用的链接:

  1. Firebug Console API
  2. Chrome Console API
  3. Mozilla Dev Docs

答案 1 :(得分:1)

如果你想在控制台中获取文本,那么只需添加空字符串,如bellow

console.log(obj + "");

答案 2 :(得分:0)

Tim Down的话说,方法

  

alert()使用对象的toString()方法将传递给它的对象转换为字符串[而] console.log()不仅用于显示简单的字符串,还可以允许您与传递给它的对象进行交互。

console.log()也用于调试。用Jan Hančič

的话来说
  

例如,当事情发生时,您可以将某些内容记录到控制台。

使用console.log查看完整对象结构。