首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寄生遗传与超方法

寄生遗传与超方法
EN

Stack Overflow用户
提问于 2012-07-26 17:45:42
回答 1查看 425关注 0票数 1

道格拉斯·克罗福德( Douglas )定义了他的寄生遗传 这里

我想使用这种继承模式,因为它简单明了,但是我想调用超级方法,而不定义uber函数,因为我不想修改对象的原型。我该怎么做?

我想要一些好的语法,而不修改对象.这个是可能的吗?

EN

回答 1

Stack Overflow用户

发布于 2012-07-26 17:53:01

在他的例子中:

代码语言:javascript
复制
function ZParenizor2(value) {
    var that = new Parenizor(value);
    that.toString = function () {
        if (this.getValue()) {
            return this.uber('toString');
        }
        return "-0-"
    };
    return that;
}

会变成这样:

代码语言:javascript
复制
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‘),然后将对象层次结构建立在它之上。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11675006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档