使用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 { }
有没有办法让我的对象输出行为与浏览器对象相同?并且,任何人都可以解释我为什么?
答案 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]"