js掺元类的实现

掺元是个奇特的方法,与平时遇到的继承有点不同。在C++和Python这类语言中允许子类继承多个父类。我们也可以把掺元类式看成是多亲继承。

顾名思义,掺元就是往类中添加额外的成员加以扩充。

我们这样定义父类

var Person = function(){
    this.name = 'default name';
} 
Person.prototype = {
    getName : function(){
        return this.name;
    } 
}

掺元类,输出类的所有成员

var Mixin = function(){};
Mixin.prototype = {
    serialize : function(){
        var output = [];
        for(key in this){
            output.push(key + " : " + this[key]);
        }
        return output.join(',');
    }
}

接下来弄个函数实现他们的继承关系

function augment(reciveClass, giveClass){
    for(method in giveClass.prototype){
        if(!reciveClass.prototype[method]){
            reciveClass.prototype[method] = giveClass.prototype[method];
        }
    }
}
augment(Person, Mixin);

var p = new Person();
alert(p.serialize());

这样子Person就有了serialize 方法了。

掺元类更适合用一些方法扩充一个类,类式与多亲继承。不过这种方案适用的场合不多,只有那些彼此大不相同的各种类中都派上用场的方法才适合共享。

原文链接: https://www.cnblogs.com/liyatang/archive/2011/06/03/2070582.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    js掺元类的实现

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/26695

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午4:21
下一篇 2023年2月8日 上午4:21

相关推荐