js中實現過載

2021-06-19 00:29:47 字數 594 閱讀 9481

js中不支援過載,得使用arguments模擬

arguments是乙個變數,,有且僅有乙個屬性length。會以陣列的形式儲存了函式執行過程中傳遞過來的實際引數,即使函式定義沒有那麼多引數。

看下邊這個例子

function sayhi(name,msg)

function sayhi(name)

當想呼叫方法時,

sayhi("tom","welcome come");
本來是想出現 「hi, tom welcome come」的,但只會出現 「hi, tom」

因為第二個函式會把第乙個函式覆蓋,永遠執行不了第乙個方法。解決方法是使用arguments來判斷。

function sayhi()

else if(arguments.length==2)

}

呼叫時可以這樣用

sayhi("tom");//結果為 hi, tom

sayhi("tom","welcome");//結果為 hi, tom welcome

JS實現過載

在js中,我們實現過載常用的方式有 1 根據傳入引數的型別執行不同的操作。2 利用引數中特殊的引數值進行不同的操作。3 根據引數的個數進行過載。這裡對第三種過載方式的實現進行說明。實現第三種方法,最簡單的就是使用switch case進行引數個數的判斷,然後執行相應的操作,但這樣的判斷方法導致 不是...

JS如何實現過載和多型

可以理解乙個方法被不同實現後 展現不同的效果及狀態。js本身不支援過載,所以只能通過其他方式實現,arguments檢測傳參的個數,然後再執行不同的方式 function add return sum alert add alert add 1 2 alert add 1 2 3 function ...

js模擬實現過載以及預設引數

眾所周知,js是函式不支援過載和預設引數的,但是我們可以使用一些其他方法來模擬這個方法的實現。首先看一下過載的定義 函式名相同,函式的引數列表不同 包括引數個數和引數型別 至於返回型別可同可不同。以及預設引數的定義 預設引數指的是當函式呼叫中省略了實參時自動使用的乙個值。那麼如何實現這兩個功能呢,乙...