js28--适配器模式

简介:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <script type=text/javascript charset=utf-8 src=../commons/CommonUtil.js ></script>
        <script type=text/javascript charset=utf-8>
            //适配器: 
          function $(){
                var elements = [] ;
                for(var i = 0 ; i < arguments.length; i++){
                    var element = arguments[i];
                    if(typeof element == 'string')
                        element = document.getElementById(element);
                    if(arguments.length ==1)
                        return element ;
                    elements.push(element);
                }
                return elements;
          }
          
          
          // YUI get function (传递了一个参数 :类型不是字符串 就是数组)
          var YAHOO = {};
          YAHOO.get = function(el){//形参实参个数可以不一样,接收还是按照一个一个匹配,
                if(typeof el == 'string'){
                    return document.getElementById(el);
                } 
                if(el instanceof Array){
                    var elements = [] ;
                    for(var i = 0 ; i < el.length ; i++){
                        elements[elements.length] = YAHOO.get(el[i]);
                    }
                    return elements;
                }
                if(el){
                    return el ; 
                }
                return null;
          };
          
          
          function YUIToPrototypeAdapter(){
                //对于YUI开发人员来说 永远传递一个参数
                if(arguments.length == 1){
                    var e = arguments[0];
                    return  $.apply(window,e instanceof Array?e:[e]);
                } else {
                    return $.apply(window ,arguments);
                }
          }
          
          
          
          window.onload = function(){
                // prototype开发人员习惯的写法
                var domarr = $('inp1','inp2');    //可以传多个参数
                alert(domarr);
                
                // YUI开发人员习惯的写法
                var domarr = YAHOO.get(['inp1','inp2']); //只能创一个参数    
                alert(domarr); 
                
                //可以传一个或多个参数
                var domarr = YAHOO.YUIToPrototypeAdapter(['inp1']);
                alert(domarr); 
         };
              
              
              
               
            
        </script>
    </head>
    <body>
            <input id="inp1" />
            <input id="inp2" />
    </body>
</html>
复制代码

 


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/6883822.html,如需转载请自行联系原作者

相关文章
|
3月前
|
设计模式 JavaScript 前端开发
js设计模式【详解】—— 适配器模式
js设计模式【详解】—— 适配器模式
26 0
|
设计模式 JavaScript 前端开发
|
设计模式 JavaScript 前端开发
JavaScript设计模式-适配器模式(11)
JavaScript设计模式-适配器模式(11)
|
JavaScript 前端开发 数据格式
JavaScript设计模式与实践--适配器模式
适配器模式(Adapter) 适配器模式主要用来解决两个已有接口之间不匹配的问题,它不考虑这些接口是怎样实现的,也不考虑它们将来可能会如何演化。适配器模式不需要改变已有的接口,就能够使它们协同作用。
1194 0
|
JavaScript 前端开发 设计模式
《JavaScript设计模式》——第10章 水管弯弯——适配器模式 10.1引入jQuery
适配器模式(Adapter):将一个类(对象)的接口(方法或者属性)转化成另外一个接口,以满足用户需求,使类(对象)之间接口的不兼容问题通过适配器得以解决。
1244 0
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
77 2
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
67 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物交易平台附带文章源码部署视频讲解等
60 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的大学生入伍人员管理系统附带文章源码部署视频讲解等
75 4
|
3月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
78 3
下一篇
无影云桌面