在JavaScript中说我创建了一个简单的对象:
function MyObj() {
this.prop = "property";
}
现在,如果我创建一个这样的实例并将其输出到控制台,我会看到对象表示:
var obj = new MyObj();
console.log(obj);
我怎样才能将输出变为字符串?:例如,我希望控制台显示My property value is 'property'
而不是[object object]。
我已尝试使用MyObj.prototype.toString
,但似乎无效。
答案 0 :(得分:5)
您可以挂钩浏览器控制台,然后重新定义它:
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);
答案 1 :(得分:2)
MyObj.prototype.toString() = function() {}
可以使用,但不会输出到控制台。如果您执行类似
console.log("The object says: " + obj);
...您会看到toString()
function MyObj() {
this.prop = "property";
}
MyObj.prototype.toString = function() {
return "My property 'prop' has the value: '" + this.prop + "'";
}
var obj = new MyObj();
console.log("the object says: " + obj);
// the object says: My property 'prop' has the value: 'property'
// Or call toString() explicitly
console.log(obj.toString());
// My property 'prop' has the value: 'property'