道格拉斯·克罗福德( Douglas )定义了他的寄生遗传 这里。
我想使用这种继承模式,因为它简单明了,但是我想调用超级方法,而不定义uber函数,因为我不想修改对象的原型。我该怎么做?
我想要一些好的语法,而不修改对象.这个是可能的吗?
发布于 2012-07-26 17:53:01
在他的例子中:
function ZParenizor2(value) {
var that = new Parenizor(value);
that.toString = function () {
if (this.getValue()) {
return this.uber('toString');
}
return "-0-"
};
return that;
}会变成这样:
function ZParenizor2(value) {
var that = new Parenizor(value);
that.toString = function () {
if (this.getValue()) {
return Parenizor.prototype.toString.apply(this, arguments);
}
return "-0-"
};
return that;
}-编辑--
另一方面,您也可以简单地定义一个名为BaseObject的新类,在其上定义所有基本的扩展方法(例如'uber‘),然后将对象层次结构建立在它之上。
https://stackoverflow.com/questions/11675006
复制相似问题