Surcharge de fonctions JavaScript
-
Utilisez l’instruction
if-else
pour effectuer une surcharge de fonction en JavaScript -
Utilisez l’instruction
switch
pour effectuer une surcharge de fonction en JavaScript - Utiliser des expressions de fonction pour effectuer une surcharge de fonction en JavaScript
Ce didacticiel vous informe sur la surcharge des fonctions JavaScript. La surcharge de fonctions signifie avoir plus d’une fonction avec le même nom et diverses implémentations. Mais, ce concept n’est pas disponible en JavaScript.
Si vous avez plusieurs fonctions portant le même nom, la dernière fonction est exécutée en JavaScript. Nous utilisons donc des alternatives pour implémenter la surcharge de fonctions en JavaScript.
Ce tutoriel utilise if-else
, switch
et expressions de fonction
pour accomplir la surcharge de fonction.
Utilisez l’instruction if-else
pour effectuer une surcharge de fonction en JavaScript
function displaySum() {
// if no argument
if (arguments.length == 0) {
console.log('No argument is passed.');
}
// if only one argument
else if (arguments.length == 1) {
console.log('You have to pass at least two arugments to perform addition.');
}
// multiple arguments
else {
let sum = 0;
let length = arguments.length;
for (var i = 0; i < length; i++) {
sum = sum + arguments[i];
}
console.log('Sum is ' + sum);
}
}
displaySum(); // call function with no parameter
displaySum(3); // call function with one parameter
displaySum(4, 5); // call function with two parameters
displaySum(3, 5, 7, 2, 9, 7, 8); // call function with multiple parameters
Production :
"No argument is passed."
"You have to pass at least two arguments to perform addition."
"Sum is 9"
"Sum is 41"
Dans l’extrait de code, nous utilisons l’instruction if-else
pour effectuer une surcharge de fonction en JavaScript. Nous appelons la fonction displaySum()
qui fonctionne différemment avec différents paramètres. Il affiche un message si aucun ou un paramètre n’est passé.
Il additionne les deux nombres si deux paramètres sont donnés et utilise une boucle for
pour additionner toutes les valeurs de plusieurs paramètres. Les arguments
sont des objets de type tableau qui jouent un rôle vital et peuvent être utilisés dans la fonction. Il représente les arguments
passés de cette fonction particulière dans laquelle il est utilisé.
Utilisez l’instruction switch
pour effectuer une surcharge de fonction en JavaScript
Nous pouvons également implémenter la surcharge de fonction en JavaScript en utilisant l’instruction switch
au lieu de l’instruction if-else
. Bien que les deux produisent la même sortie, le code semble plus propre avec l’instruction switch
.
function displaySum() {
switch (arguments.length) {
// if no argument
case 0:
console.log('No argument is passed.');
break;
// if only one argument
case 1:
console.log(
'You have to pass at least two arguments to perform addition.');
break;
// multiple arguments
default:
let sum = 0;
let length = arguments.length;
for (var i = 0; i < length; i++) {
sum = sum + arguments[i];
}
console.log('Sum is ' + sum);
break;
}
}
displaySum(); // call function with no parameter
displaySum(3); // call function with one parameter
displaySum(4, 5); // call function with two parameters
displaySum(3, 5, 7, 2, 9, 7, 8); // call function with multiple parameters
Production :
"No argument is passed."
"You have to pass at least two arguments to perform addition."
"Sum is 9"
"Sum is 41"
Dans ce code, nous utilisons l’instruction switch
pour accomplir différentes actions basées sur divers arguments. Vous pouvez en savoir plus sur l’objet arguments
ici ou dans la section précédente.
Utiliser des expressions de fonction pour effectuer une surcharge de fonction en JavaScript
// Creating a class "practiceFunctionOverloading"
class practiceFunctionOverloading {
// Creating an overloadable function.
displaySum() {
// Define four overloaded functions
var functionNoParam = function() {
return 'No parameter is passed.';
};
var functionOneParam = function(arg1) {
return 'You must have at least two parameters to sum.';
};
var functionTwoParam = function(arg1, arg2) {
console.log('Sum is given below: ');
return arg1 + arg2;
};
var functionMultiParam = function(arg1, arg2, arg3) {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum = sum + arguments[i];
}
console.log('Sum is given below: ');
return sum;
};
/* the length and type of the arguments passed
( in this case an Array ) we can determine
which function to be executed */
if (arguments.length === 0) {
return functionNoParam();
} else if (arguments.length === 1) {
return functionOneParam(arguments[0]);
} else if (arguments.length === 2) {
return functionTwoParam(arguments[0], arguments[1]);
} else if (arguments.length > 2) {
return functionMultiParam(arguments[0], arguments[1], arguments[2]);
}
}
}
// Driver Code
// create an object of class practiceFunctionOverloading
var object = new practiceFunctionOverloading();
console.log(object.displaySum()); // call function with no parameter
console.log(object.displaySum(1)); // call function with one parameter
console.log(object.displaySum(2, 3)); // call function with two parameters
console.log(object.displaySum(2, 4, 5)); // call function with three parameters
Production :
"No parameter is passed."
"You must have at least two parameters to sum."
"Sum is given below: "
5
"Sum is given below: "
11
Nous utilisons une fonction et une expression de fonction pour simuler la surcharge de fonctions à l’aide de JavaScript. L’inconvénient de cette approche est que le code semble plus désordonné si des centaines de paramètres sont passés.