0
我最近從Java後端更改爲JS前端。我們使用類似對象結構的主幹(至少這是我的同事告訴我的),我想知道是否有方法來覆蓋toString()
(例如應該從console.log
調用)。將toString添加到骨幹模型對象
這是我們的模型是什麼樣子
// namespace
var De = {};
De.Ppasler = {};
De.Ppasler.Model = (function() {
/** @constructor */
function Model(param) {
var self = this;
self.public = function() {
// do sth public
console.log("public", private());
};
function private() {
// do sth private
return "private";
}
// this is what I would have done in Java
self.toString = function() {
return "[object Model]";
}
}
return Model;
}());
var model = new De.Ppasler.Model();
model.public();
console.log(model);
添加toString
型號不起作用。
我也試過this one:
Model.prototype.toString
和self.prototype.toString
但是這會導致錯誤
我不能確保model
定義,我想避免undefined
-check,直接調用toString
前爲了登錄目的。
請參閱:http://stackoverflow.com/q/36215379/2333214。 'console.log'不是標準的一部分。你最好重寫'console.log' /編寫你自己的日誌函數來調用'toString' /你定義的具體方法 –
感謝提示,我會猜測100%'console.log'是一個標準函數...我被寵壞了Java我猜:) – ppasler
這真的看起來像[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。你想在這裏做什麼? –