我正在研究Mongoose(这是一个很漂亮的软件......),我看到了这个:
function Model (doc, fields, skipId) {
Document.call(this, doc, fields, skipId);
};
/*!
* Inherits from Document.
*/
Model.prototype.__proto__ = Document.prototype;
哇,这是我见过的最简单的继承方式。我知道它不能用浏览器来完成,而是服务器端...它看起来像赢家:
就是这样!
这可能是在服务器端实现继承的最简洁,最简单的方法吗?我问,因为我爱上了它,我想知道我是否缺少一些限制/问题......?
答案 0 :(得分:1)
好吧,有些浏览器的franeworks过去通过A.prototype = new B()
来模仿这个,但这有点hacky :)两种方式的一个重要好处是猴子修补父类使后代能够使用新的/更改的方法父母(A.prototype = $.extend({}, B.prototype)
和类似的黑客不是这种情况)。
至于所描述的方法,它肯定看起来更干净,所以我会投票赞成“是”
答案 1 :(得分:0)
据我所知,这可以在客户端完成,如:
Model.prototype = new Document();
Model.prototype.constructor = Model;