js28--適配器模式
阿新 • • 發佈:2017-05-21
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-8src=../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--適配器模式