この例では、関数のオーバーロードを実行するJavaScriptプログラムの作成方法を学習します。
プログラミングでは、関数のオーバーロードとは、同じ名前の複数の関数が異なる実装を持つことができるという概念を指します。 ただし、JavaScriptでは、同じ名前の関数が複数ある場合、最後に定義した関数が実行されます。
関数のオーバーロード機能は、他のいくつかの方法で実装できます。
例1:if / else-ifステートメントの使用
// program to perform function overloading
function sum() {
// if no argument
if (arguments.length == 0) {
console.log('You have not passed any argument');
}
// if only one argument
else if (arguments.length == 1) {
console.log('Pass at least two arguments');
}
// multiple arguments
else {
let result = 0;
let length = arguments.length;
for (i = 0; i < length; i++) {
result = result + arguments[i];
}
console.log(result);
}
}
sum();
sum(5);
sum(5, 9);
sum(1, 2, 3, 4, 5, 6, 7, 8, 9);
出力
You have not passed any argument Pass at least two arguments 14 45
上記のプログラムでは、オーバーロード機能は、 if/else...if
ステートメント。
- JavaScriptでは、
arguments
オブジェクトは、関数に渡された引数を表す関数内で自動的に使用可能になります。 - 複数の条件は、その特定の条件に基づいてアクションを実行するために対処されます。
例2:switchステートメントの使用
// program to perform function overloading
function sum() {
switch (arguments.length) {
case 0:
console.log('You have not passed any argument');
break;
case 1:
console.log('Pass at least two arguments');
break;
default:
let result = 0;
let length = arguments.length;
for (i = 0; i < length; i++) {
result = result + arguments[i];
}
console.log(result);
break;
}
}
sum();
sum(5);
sum(5, 9);
sum(1, 2, 3, 4, 5, 6, 7, 8, 9);
出力
You have not passed any argument Pass at least two arguments 14 45
上記のプログラムでは、 switch
ステートメントは、関数のオーバーロード機能を実現するために使用されます。 条件が異なると、実行するアクションも異なります。
Hope this helps!