都知道在js中沒有辦法直接實現方法重載,因為在js中如果定義了多個名稱相同,但參數個數不一樣的方法,其實只有最后一個方法能被真正調用,其他的方法都被覆蓋掉了。
但每一個函數都有一個特殊的參數arguments,利用它可以實現方法的重載。
例如:
復制代碼 代碼如下:
function Add(firstnumber,sencondnumber) {
return firstnumber+sencondnumber;
}
復制代碼 代碼如下:
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;
}
}
新聞熱點
疑難解答
圖片精選