91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript怎么實現函數重載

發布時間:2022-01-18 17:09:06 來源:億速云 閱讀:144 作者:iii 欄目:web開發

這篇“javascript怎么實現函數重載”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“javascript怎么實現函數重載”文章吧。

javascript可以實現函數重載。在javascript函數內部有一個arguments對象,可以通過arguments對象獲取參數列表,判定參數的個數使用不同的方法來模擬函數重載效果。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

JavaScript的函數支持重載嗎?可以實現函數重載嗎?對于這個問題,主要有兩個點,第一,JavaScript的函數;第二,重載。

首先,說一下重載。所謂重載,簡單說,就是函數或者方法有相同的名稱,但是參數列表不相同的情形,這樣的同名不同參數的函數或者方法之間,互相稱之為重載函數或者方法。所以說,重載主要需要兩點:第一,同樣的函數名。第二,不同的函數參數。

明確了重載的定義之后,我們再回到JavaScript這里。追本溯源,現在一說到JavaScript,我們就可以聯想到ECMAScript,即JavaScript的標準。那么,這個標準里面對函數做出了那些規范呢?

首先,ECMAScript是沒有函數簽名的概念的,因為其參數是由包含零或多個值的數組來表示的。而沒有函數簽名,真正的重載是不可能做到的。

其次,如果在ECMAScript中定義了兩個名字相同的函數,則該名字只屬于后定義的函數,如下:

function add(num){
    return num+1;
}
function add(num){
    return num+2;
}
var result = add(4);  //結果為6

在上面的例子中,add()函數被定義了兩次,然而,當我們調用他的時候,卻直接調用了第二個函數,這說明在JavaScript中,后定義的函數會覆蓋先定義的函數。

說到這里,是不是就可以判定JavaScript不支持函數重載了呢?

讓我來介紹一下JavaScript里面的一個arguments對象。首先,ECMAScript函數的參數與其他語言的函數參數有一點不同。ECMAScript函數不介意傳進來的參數個數和類型。也就是說,在你定義了函數只接受兩個參數之后,你仍然可以在調用的時候傳遞零或多個參數。這并不會報錯。原因就在于arguments對象。ECMAScript中,函數的參數始終是存放在一個數組中,而通過arguments對象,就可以訪問到這個數組。所以,只需要使用length屬性就可以確定調用函數時傳遞了多少個參數。

說到這里,我們可以來嘗試這樣寫:

function add(num1, num2){
    if(arguments.length == 1){
        alert("你輸入的只有一個數字:"+arguments[0]+" 請重新輸入");
    }else if(arguments.length == 2){
        alert("你輸入數字的和為:" + arguments[0]+arguments[1]);
}
}

通過這個例子,我們可以看出,通過檢查傳入函數中參數的數量,JavaScript函數可以做出不同的反應,這可以間接達到重載的目的。

所以,JavaScript是可以模仿函數的重載的。

以上就是關于“javascript怎么實現函數重載”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扬州市| 宁强县| 扶沟县| 寻乌县| 泸西县| 青龙| 泽库县| 固阳县| 两当县| 东兴市| 长兴县| 芷江| 澎湖县| 都昌县| 稷山县| 阳新县| 武功县| 张家界市| 汪清县| 南昌县| 惠水县| 湟源县| 土默特右旗| 醴陵市| 嘉黎县| 奎屯市| 海兴县| 高邑县| 沧源| 日土县| 嘉峪关市| 和田市| 新丰县| 饶平县| 昆山市| 霍林郭勒市| 循化| 碌曲县| 天全县| 揭西县| 襄汾县|