zoukankan      html  css  js  c++  java
  • 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>
  • 相关阅读:
    vue强制更新$forceUpdate()
    js数组拼接成字符串,去除最后一个逗号
    JavaScript数组遍历:for、foreach、for in、for of、、().each的区别
    json.stringify()的妙用,json.stringify()与json.parse()的区别
    第四次博客作业-结对项目
    于达——第九次作业
    于达——第八次作业
    软件工程第三次作业——关于软件质量保障初探
    于达——第七次作业
    于达——第六次作业
  • 原文地址:https://www.cnblogs.com/yaowen/p/6883822.html
Copyright © 2011-2022 走看看