javaScript過載

+太陽花+發表於2020-12-29

js不支援標準的過載方式,不允許多個同名函式同時存在,只有最後一個留下

過載

相同函式名,不同形參列表的多個函式,在呼叫時可根據傳入的實參值不同,自動選擇匹配的函式
功能程式碼

function payByPhone(){
  consle.log(`手機支付`);
}
function payByMoney(money){
 console.log(`現金支付`);
}

函式名過多,用同一個函式代替

function pay(){ ... }
function pay(money){ ... }
function pay(carId,pwd){ ... }
pay();
pay(money);
pay(carId,pwd);//js中不能用

js中不能用
為減少函式名個數,減輕呼叫者的負擔,不能寫多個同名函式,只能寫一個函式,寫幾個形參無法滿足所有情況,所以不寫形參。
藉助於函式內的一個特殊物件arguments來獲得實參值
arguments
每個函式內,一定都包含的一個,可直接使用的,專門接受所有傳入函式的實參值的類陣列物件
類陣列物件
長的像陣列的物件
根據argument中獲得實參值個數或實參值的內容/型別不同,來判斷,選這不同的執行過程

JS變通實現過載

function pay(){
  if(arguyments.length==0){
     console.log(`手機支付`);
}else if(argument.length==1){
     console.log(`現金支付`);
}else{
   consle.log(`刷卡支付`);
}
}

相關文章