js掺元类的实现
时间:2011-06-03 来源:liyatang
掺元是个奇特的方法,与平时遇到的继承有点不同。在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 方法了。
掺元类更适合用一些方法扩充一个类,类式与多亲继承。不过这种方案适用的场合不多,只有那些彼此大不相同的各种类中都派上用场的方法才适合共享。
相关阅读 更多 +