js如何将objectName打印到控制台

时间:2015-01-21 12:57:05

标签: javascript

使用webdev工具控制台时,如果键入浏览器对象,则返回控制台

> console
Console {  }
> console+""
"[object Console]"
> console.log(console)
undefined
> Console {  }

以这种方式为所有浏览器对象工作; 但是,如果我使用自己的对象,输出不具有我的objectName(MyObj),只有" Object"像这样:

> var MyObj=function(){}
undefined
> var instance = new MyObj();
undefined
> instance
Object {  }
> instance+""
"[object Object]"
> console.log(instance);
undefined
Object {  }

有没有办法让我的对象输出行为与浏览器对象相同?并且,任何人都可以解释我为什么?

1 个答案:

答案 0 :(得分:4)

您可以覆盖toString()中的MyObj.prototype方法:

MyObj.prototype.toString = function(){ return "[object MyObj]";}

实施例

var MyObj = function(){};    
MyObj.prototype.toString = function(){ return "[object MyObj]"; };

var instance = new MyObj();

console.log(instance + "");
// "[object MyObj]"