[JavaScript]関数のオーバーロードを実行する

この例では、関数のオーバーロードを実行する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!

Source link