javascript设计模式-掺元类

本文介绍了一种不依赖严格继承的代码重用方法——掺元类。通过实例展示了如何利用此方法将一个类的方法共享给其他多个类,以此减少重复代码并提高代码的可维护性。

有一种重用代码的方法不需要用到严格的继承。如果想把一个函数用到多个类中,可以通过扩充的方式让这些类共享该函数。其实际做法大大体为:先创建一个包含各种通用方法的类,然后再用它扩充其他的类。这种方式就叫做掺元类

 1 function augment(receivingClass,givingClass){
 2     if(arguments.length > 2){
 3         for(var i= 2, len = arguments.length;i<len;i++){
 4             receivingClass.prototype[arguments[i]] = givingClass.prototype[arguments[i]];
 5         }
 6     }else{
 7         for(var methodName in givingClass.prototype){
 8             if(!receivingClass.prototype[methodName]){
 9                 receivingClass.prototype[methodName] = givingClass.prototype[methodName];
10             }
11         }
12     }
13 }
14 
15 function Author(name,books){
16     this.name = name;
17     this.books = books;
18 }
19 Author.prototype.getBooks = function(){
20     return this.books;
21 }
22 
23 var MiXin = function(){};
24 MiXin.prototype = {
25     serialize:function(){
26         var output = [];
27         for(key in this){
28             output.push(key + ":" + this[key]);
29         }
30         return output.join(", ");
31     }
32 }
33 augment(Author,MiXin);
34 var author = new Author("zap","读书笔记");
35 console.log(author.serialize());

转载于:https://www.cnblogs.com/tengri/p/5272172.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值