[英]How do I override the default output of an object?
用JavaScript說,我創建了一個簡單的對象:
function MyObj() {
this.prop = "property";
}
現在,如果我創建了一個實例並將其輸出到控制台,則會看到對象表示形式:
var obj = new MyObj();
console.log(obj);
我該如何使輸出字符串呢?:例如,我希望控制台顯示“ My property value is 'property'
而不是[對象對象]。
我已經嘗試過使用MyObj.prototype.toString
,但是它似乎不起作用。
您可以掛鈎瀏覽器控制台,然后再重新定義它:
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);
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'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.