js中的函數重載


函數重載與js

什么是函數重載

重載函數是函數的一種特殊情況,為方便使用,C++允許在同一范圍中聲明幾個功能類似的同名函數,但是這些同名函數的形式參數(指參數的個數、類型或者順序)必須不同,也就是說用同一個函數完成不同的功能。這就是重載函數。重載函數常用來實現功能類似而所處理的數據類型不同的問題。不能只有函數返回值類型不同。

與之相似的函數重寫

函數重寫,也被稱為覆蓋,是指子類重新定義父類中有相同名稱和參數的虛函數,主要在繼承關系中出現。

函數重載基本條件

  • 函數名必須相同;
  • 函數參數必須不相同,可以是參數類型或者參數個數不同;
  • 函數返回值可以相同,也可以不相同。(如果函數的名稱和參數完全相同,僅僅是返回值類型不同,是無法進行函數重載的。)

函數重載應用場景

同一場景下,對於函數功能相同,僅僅參數不同的情況下進行重載,可減少開發的重復命名等情況

javascript 中的函數重載

javascript 中沒有真正意義上的函數重載,因為 javascript 中同一作用域下的同名函數,前者會被后者覆蓋,但是可通過其他方法間接實現重載同樣的效果,javascript中的函數沒有簽名,它的參數是由包含零的多個數組來表示的。無函數簽名的話重載是不可能做到的

但是我們可以簡介方法實現重載效果,使用 arguments 對象,是函數內部的一個類數組對象,它里面保存着調用函數時,傳遞給函數的所有參數。 簡單的講就是使用邏輯判斷,根據參數所在數組的長度來執行不同的代碼

function foo(){
	if(arguments.length === "條件1"){
    	"函數1"
    }
    if(arguments.length === "條件2"){
        "函數2"
    }
}

重載的本質就是將多個功能相近的函數合並為同一個函數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM