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