<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                都知道在js中沒有辦法直接實現方法重載,因為在js中如果定義了多個名稱相同,但參數個數不一樣的方法,其實只有最后一個方法能被真正調用,其他的方法都被覆蓋掉了。 但每一個函數都有一個特殊的參數arguments,利用它可以實現方法的重載。 例如: ~~~ function Add(firstnumber,sencondnumber) { return firstnumber+sencondnumber; } ~~~ 只能處理兩個參數,如果有多個參數,或者沒有參數,一個參數的情況都是處理不了的。如果沒有傳遞參數,則firstnumber,sencondnumber都是未定義的,如果傳遞了一個參數,就相當于只給firstnumber賦值了,sencondnumber依然是未定義。相反如果傳遞了多于兩個的參數,則相當于firstnumber,sencondnumber都賦值了,雖然還有其他的參數,但處理時都忽略掉了。如果能獲取其他的參數,自然就可以處理了。此時應該就可以想到函數的特殊參數arguments,這個包含了傳遞給函數的所有參數,利用它就可以實現方法重載的效果。 以上的方法修改如下: ~~~ function Add(firstnumber,sencondnumber) { if (arguments.length == 0)//沒有傳遞參數 { return null; } else if (arguments.length == 1) {//傳遞的是一個參數 return firstnumber;//也可以寫為 return arguments[0]; } else if(arguments.length == 2)//傳遞的是兩個參數 { return firstnumber+sencondnumber;//也可以寫為 return arguments[0]+arguments[1]; } else { var total=0; for (var i = 0; i < arguments.length; i++) { total=total+arguments[i] } return total; } } ~~~ 當然這種方法的弊端就是參數的順序不能打亂,如果函數實現依賴于參數的順序,就必須進行特殊處理,例如傳遞null來占位。 由于傳遞給函數的參數是嚴格按照定義函數的順序給每一個參數賦值的,如果只想給第二個參數賦值,則必須傳遞兩個參數,否則實際上傳遞的值賦值給了第一個參數,并沒有賦值給第二個參數。 例如只想給sencondnumber傳值,但不想給firstnumber傳值,必須這樣調用Add(null,2)(當然函數內部必須處理傳遞特殊值的情況),如果這樣調用Add(2),其實是給firstnumber傳值了,相當于調用了傳遞了一個參數的情況。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看