1. 程式人生 > >js28--適配器模式

js28--適配器模式

for html type bsp clas [] logs 模式 ext

<!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>

js28--適配器模式