1
的node-binary二進制解析器建立其具有以下模式對象:如何繼承了「構造函數返回另一個對象」對象
exports.parse = function parse (buffer) {
var self = {...}
self.tap = function (cb) {...};
self.into = function (key, cb) {...};
...
return self;
};
如何繼承我自己的,開明的解析器嗎?這種模式是故意設計使繼承尷尬嗎?
我唯一的一次成功嘗試迄今在繼承的binary.parse(<something>)
所有方法是使用_.extend
爲:
var clever_parser = function(buffer) {
if (this instanceof clever_parser) {
this.parser = binary.parse(buffer); // I guess this is super.constructor(...)
_.extend(this.parser, this); // Really?
return this.parser;
} else {
return new clever_parser(buffer);
}
}
這已經失敗我的氣味測試,和其他人的。有沒有什麼關於這使得在危險?