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>
  • 相关阅读:
    可持久化线段树区间查询 + 永久化标记 T^T online judge 2507
    可持久化线段树
    T^T online judge 3441
    食物链
    T^T ONLINE JUDGE 2592
    HDU 6312 GAME
    HDU 1430 魔板
    栈的操作链表+数组版
    Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round) D. Peculiar apple-tree
    Codeforces Round #468 (Div. 2, based on Technocup 2018 Final Round) C. Laboratory Work
  • 原文地址:https://www.cnblogs.com/yaowen/p/6883822.html
Copyright © 2011-2022 走看看