ECMAScript 関数は渡されるパラメーターの数を気にしないため、パラメーターの不一致によるエラーは発生しません。実際、関数本体は、引数オブジェクトを通じて渡されたパラメーターを受け取ることができます。
function box() {
return argument[0 ] ' | ' argument[1]; // 各パラメータの値を取得します
alert(box(1,2,3,4,5,6));パラメータを渡す
引数オブジェクトの length 属性でパラメータの数を取得できます。
function box() {
return argument.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
sum = sum argument[i];
}
return sum を返します
}
alert(box(5,9, 12));
ECMAScript の関数には、他の高級言語のような関数のオーバーロード機能がありません。
function box(num) {
return num 100;
}
function box(num) { //この関数は実行されます
return num 200;アラート (box(50)); // 結果を返します