我的漫漫程序之旅

          專注于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 々上善若水々 閱讀(420) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 松潘县| 定日县| 丰原市| 昔阳县| 桃园市| 聊城市| 梓潼县| 吉林省| 灵川县| 苍溪县| 西华县| 大冶市| 西乌珠穆沁旗| 加查县| 岳池县| 余江县| 龙游县| 东辽县| 阿拉善盟| 阿克陶县| 永靖县| 韶山市| 珲春市| 唐海县| 武宣县| 苍山县| 塔城市| 平江县| 布拖县| 鄂托克前旗| 新田县| 西宁市| 香港| 曲阜市| 林周县| 曲阳县| 怀宁县| 建瓯市| 七台河市| 阳西县| 昌吉市|