我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          JavaScript函數重載和類型檢查

          <!--
          函數重載和類型檢查
          重載是其它面向對象語言的一個普通特性,像Java
          (JavaScript是不能直接寫重載的,但我們可以通過另
          一種方式來實現).
          要想實現重載必須知道:所傳參數的個數,類型都是什么.
          我們就從這入手.
          -->
          <html>
              
          <head>
                  
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                  
          <title>Untitled Document</title>
                  
          <script>
                      
          //arguments 是每個javascript函數內置的一個對象
                      //返回傳入參數的數組
                      function getArgs(){
                          
          var arr = new Array();
                          
          for (var i = 0; i < arguments.length; i++{
                              arr.push(arguments[i]);
                          }

                          
          return arr;
                      }

                      
                      
          var arr = getArgs("a""b""c");
                      
          //輸出所有參數
                      for (var i in arr) {
                          alert(arr[i]);
                      }

                      
          //發送短消息的函數
                      function sendMessage(msg, obj){
                          
          //參數為2
                          if (arguments.length == 2{
                              
          //對象的屬性函數
                              obj.handleMsg(msg);
                          }

                          
          //一個參數時
                          else {
                              alert(msg);
                          }

                      }

                      
                      
          //一個參數時的調用 
                      sendMessage("Hello,World");
                      
                      sendMessage(
          "How are you ?"{
                          handleMsg: 
          function(msg){
                              alert(
          "This is a custom message:" + msg);
                          }

                      }
          );
                      
          /*
                       * 類型檢查,關鍵字typeof
                       
          */

                      
          function check(str){
                          
          if (typeof str == "undefined"{
                              alert(
          "an error occurred!")
                          }

                          
          else {
                              alert(str);
                          }

                          
                      }

                      
                      
          var a = 1;
                      
          //用構造函數屬性確認對象的類型
                      if (a.constructor == Number) {
                          alert(
          true);
                      }

                      
          //用typeof關鍵字
                      if (typeof a == "number"{
                          alert(
          true);
                      }

                      
          var s = []; //或var s = new Array();
                      if(s.constructor == Array)
                      
          {
                          alert(
          "array");
                      }

                      
                  
          </script>
              
          </head>
              
          <body>
              
          </body>
          </html>

          typeof 和constructor返回類型一覽表:
          Variable typeof      Variable   Variable.constructor
          { an: “object” }   object    Object
          [ “an”, “array]   object     Array
          function(){}            function   Function
          “a string”            string        String
          55                          number    Number
          true                         boolean    Boolean
          new User()              object        User

          posted on 2008-07-09 14:33 々上善若水々 閱讀(421) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 崇仁县| 漳浦县| 岳西县| 子洲县| 吉林省| 都江堰市| 抚宁县| 伊宁县| 南江县| 鄂尔多斯市| 孙吴县| 郁南县| 兴化市| 县级市| 榆社县| 阿拉善盟| 永川市| 色达县| 翁源县| 遂平县| 延川县| 西宁市| 武胜县| 射洪县| 中江县| 泗水县| 綦江县| 泌阳县| 成武县| 鹤岗市| 根河市| 乐都县| 中宁县| 万源市| 建宁县| 九龙县| 察雅县| 苗栗县| 南雄市| 双流县| 图片|