如何覆盖对象的默认输出? [英] How do I override the default output of an object?
本文介绍了如何覆盖对象的默认输出?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在JavaScript中说我创建了一个简单的对象:
Say in JavaScript I create a simple object:
function MyObj() {
this.prop = "property";
}
现在,如果我创建一个这样的实例并将其输出到控制台,我看到对象表示:
Now if I create an instance of this and the output it to console I see the object representation:
var obj = new MyObj();
console.log(obj);
我怎样才能使输出成为字符串?:例如,我希望控制台显示我的属性值是'property'
而不是[object object]。
How can I instead make that output a string?: For example, I would like that the console displays My property value is 'property'
rather than [object object].
我尝试过使用 MyObj.prototype.toString
,但它似乎不起作用。
I've tried using MyObj.prototype.toString
, but it doesn't seem to work.
推荐答案
您可以挂钩浏览器控制台,然后重新定义它:
You could hook the browser console, and redefine it afterwards:
var obj = {
name: "Joel",
age: 32,
toString: function() {
return this.name + " is " + this.age + " years old.";
}
};
var browserConsole = console;
console = {
log: function(data) {
if (typeof data === "object") {
browserConsole.log(data.toString());
} else {
browserConsole.log(data);
}
}
}
console.log(obj);
这篇关于如何覆盖对象的默认输出?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文