12、适配器模式

适配器模式:将一个类(对象)的接口(方法或者属性)转化成另外一个接口,以满足用户需求,使类(对象)之间接口的不兼容问题通过适配器得以解决。

 1 var A = A || {};
 2 A.g = function(id){
 3     return document.getElementById(id);
 4 }
 5 
 6 //添加绑定事件
 7 A.on = function(id, type, fn){
 8     var dom = typeof id === 'string' ? this.g(id) : id;
 9     if(dom.addEventListener){
10         dom.addEventListener(type, fn, false);
11         //对于不支持addEventListener方法,但支持attachEvent方法的浏览器
12     }else if(dom.attachEvent){
13         dom.attachEvent('on'+ type, fn);
14         //对于上边都不值,但支持onclick
15     }else{
16         dom['on' + type] = fn
17     }
18 }

 

我们可以这样做

1 A.on(window, 'load', function(){
2     A.on('mybutton', 'click', function(){
3         //do something
4     })
5 })

 

适配下

1 A.g = function(id){
2     return $(id).get(0);
3 }
4 
5 A.on = function(id, type, fn){
6     var dom = typeof id === 'string' ? $('#' + id) : $(id);
7     dom.on(type, fn);
8 }

 

 

11.2数据适配

  

var arr = ['javascript', 'html', 'c#'];

我们想给转化成为对象的形式

var arr = {};

 1 function arrToObj(arr){
 2     return {
 3         name : arr[0],
 4         type : arr[1],
 5         title : arr[2]
 6     }
 7 }
 8 
 9 
10 var adapterData = arrToObj(arr);
11 console.log(adapterData); //{name : "javascript", ....}

 

posted on 2016-09-27 17:29  爱拼才有钱  阅读(160)  评论(0编辑  收藏  举报

导航