ECMAScript 函數不介意傳遞進來多少參數,也不會因為參數不統一而錯誤。實際上,函數體內可以通過 arguments 對象來接收傳遞進來的參數。
復制代碼 代碼如下:
function box() {
return arguments[0]+' | '+arguments[1]; //得到每次參數的值
}
alert(box(1,2,3,4,5,6)); //傳遞參數
arguments 對象的 length 屬性可以得到參數的數量。
function box() {
return arguments.length; //得到 6
}
alert(box(1,2,3,4,5,6));
我們可以利用 length 這個屬性, 來智能的判斷有多少參數, 然後把參數進行合理的應用。
比如,要實現一個加法運算,將所有傳進來的數字累加,而數字的個數又不確定。
復制代碼 代碼如下:
function box() {
var sum = 0;
if (arguments.length == 0) return sum; //如果沒有參數,退出
for(var i = 0;i < arguments.length; i++) { //如果有,就累加
sum = sum + arguments[i];
}
return sum; //返回累加結果
}
alert(box(5,9,12));
ECMAScript 中的函數,沒有像其他高級語言那種函數重載功能。
function box(num) {
return num + 100;
}
function box (num) { //會執行這個函數
return num + 200;
}
alert(box(50)); //返回結果