posts - 101,  comments - 29,  trackbacks - 0

           前段時間學JavaScript,最先學的就是如何建立自己的JavaScript函數庫,在我看來,函數就是程序活的靈魂,在此簡單介紹一下如何建立自己的JavaScript函數庫。

          原則:

                  不要版本檢測:常用瀏覽器一般是IE、firefox、safari、opera、google,不能為了追求兼容而嗅探當前瀏覽器進而選擇運行模式。

                  最好是能力檢測:即在代碼執行之前,檢測使用的某個腳本或是對象是否存在,而不是依賴于哪種瀏覽器,例如:

                       if (document.body&&document.body.getElementsByTagName) {//如果document.body 與getElementsByTagName存在
                               //使用document.body.getElementsByTagName代碼
                       }

               使用命名空間:javascript支持多次聲明同名函數,但是只能使用最后聲明的版本,為了確保不相抵觸,需要使用命名空間來區別同名函數。使用命名空間分需要注意兩點:唯一和不共享,唯一即命名空間命名唯一,例如google加G,我自己的加LD;不共享即什么都不共享包括名稱、變量等,為了防止自己的$函數和prototype中的沖突,可以使用如下方法:
          (function(){
              //自己的代碼
          })();
          // JavaScript Document
          (function(){
                    function $(){
                        alert ("正在Buffering!");//提示正在緩沖
                        }
                        window['LD']={}//把LD命名空間加到window
                        window['LD']['$']=$;把$函數加到LD
          }
          )(); 

          JavaScript函數庫實例

          [javascript] view plaincopy
          1. (function () {  
          2.         window['LD'] = {}; //將命名空間寫到window上  
          3.         function $() {//獲取elements  
          4.                 var elements = new Array();  
          5.                 for (var i = 0; i < arguments.length; i++) {  
          6.                         var element = arguments[i]; //賦值element參數數組值   
          7.                         if (typeof element == 'string') {  
          8.                                 element = document.getElementById(element);  
          9.                         }  
          10.                         if (arguments.length == 1) {  
          11.                                 return element;  
          12.                         }  
          13.                         elements.push(element);  
          14.                 }  
          15.                 return elements;  
          16.         };  
          17.         function getElementsByClassName() {  
          18.                 //TODO  
          19.         };  
          20.         window['LD']['$'] = $; //將函數寫到window下的LD下  
          21.         window['LD']['getElementsByClassName'] = getElementsByClassName; //將新的getElementsByClassName添加到LD下  
          22. })()  
                  head:
          [javascript] view plaincopy
          1. <head>  
          2.         <script src="LD.js" type="text/javascript"></script>  
          3.         <script type="text/javascript">  
          4.                 function cclick() {  
          5.                         var testInput = LD.$("Text1""Text2");  
          6.                         for (var i = 0; i < testInput.length; i++) {  
          7.                                 alert(testInput[i].value);//彈出其內容  
          8.                         }  
          9.                 }  
          10.           </script>  
          11. <title></title>  
          12. </head>  
                  body:
          [javascript] view plaincopy
          1. <body onload ="LD.$();">  
          2.         <p>  
          3.                 <input id="Text2" type="text" value="廊坊" />  
          4.                 <input id="Text1" type="text"  value="提高班" />  
          5.         </p>  
          6.         <p>  
          7.                 <input id="Button1" type="button" value="點我"  onclick="cclick();" />  
          8.         </p>  
          9. </body>  
                  運行結果:

                  這只是最基本的自建函數庫,更多的自建函數還等待我的積累。

          posted on 2012-06-27 23:01 mixer-a 閱讀(847) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 潮安县| 绵竹市| 吉隆县| 贡嘎县| 梁河县| 穆棱市| 综艺| 三门县| 会理县| 延边| 新邵县| 普格县| 三原县| 石柱| 榆树市| 石城县| 公主岭市| 长葛市| 广宁县| 河池市| 新田县| 金乡县| 罗田县| 徐闻县| 靖安县| 赞皇县| 富源县| 兴安县| 河东区| 长沙县| 晋城| 泽普县| 金溪县| 新闻| 孝感市| 酒泉市| 二连浩特市| 紫云| 云林县| 宁都县| 古田县|