JavaScript Funktionsüberladung
-
Verwenden Sie die
if-else
-Anweisung, um Funktionen in JavaScript zu überladen -
Verwenden Sie die
switch
-Anweisung, um eine Funktionsüberladung in JavaScript durchzuführen - Verwenden Sie Funktionsausdrücke, um Funktionen in JavaScript zu überladen
Dieses Tutorial informiert Sie über das Überladen von JavaScript-Funktionen. Funktionsüberladung bedeutet, dass mehr als eine Funktion mit demselben Namen und verschiedenen Implementierungen vorhanden ist. Dieses Konzept ist jedoch in JavaScript nicht verfügbar.
Wenn Sie mehrere Funktionen mit demselben Namen haben, wird die letzte Funktion in JavaScript ausgeführt. Daher verwenden wir Alternativen, um das Überladen von Funktionen in JavaScript zu implementieren.
Dieses Tutorial verwendet if-else
, switch
und function expressions
, um das Überladen von Funktionen zu erreichen.
Verwenden Sie die if-else
-Anweisung, um Funktionen in JavaScript zu überladen
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
Ausgabe:
"No argument is passed."
"You have to pass at least two arguments to perform addition."
"Sum is 9"
"Sum is 41"
Im Code-Snippet verwenden wir die Anweisung if-else
, um eine Funktionsüberladung in JavaScript durchzuführen. Wir rufen die Funktion displaySum()
auf, die sich mit verschiedenen Parametern unterschiedlich verhält. Es zeigt eine Meldung an, wenn kein oder ein Parameter übergeben wird.
Es addiert die beiden Zahlen, wenn zwei Parameter angegeben sind, und verwendet eine for
-Schleife, um alle Werte in mehreren Parametern zu addieren. Die Argumente sind Array-ähnliche Objekte, die eine wichtige Rolle spielen und innerhalb der Funktion verwendet werden können. Es stellt die Argumente dar, die von dieser bestimmten Funktion übergeben werden, in der es verwendet wird.
Verwenden Sie die switch
-Anweisung, um eine Funktionsüberladung in JavaScript durchzuführen
Wir können das Überladen von Funktionen auch in JavaScript implementieren, indem wir die Anweisung switch
anstelle der Anweisung if-else
verwenden. Obwohl beide die gleiche Ausgabe erzeugen, sieht der Code mit der switch
-Anweisung sauberer aus.
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
Ausgabe:
"No argument is passed."
"You have to pass at least two arguments to perform addition."
"Sum is 9"
"Sum is 41"
In diesem Code verwenden wir die switch
-Anweisung, um verschiedene Aktionen basierend auf verschiedenen Argumenten auszuführen. Über das Objekt Argumente
können Sie hier oder im vorherigen Abschnitt nachlesen.
Verwenden Sie Funktionsausdrücke, um Funktionen in JavaScript zu überladen
// 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
Ausgabe:
"No parameter is passed."
"You must have at least two parameters to sum."
"Sum is given below: "
5
"Sum is given below: "
11
Wir verwenden Funktion und Funktionsausdruck, um das Überladen von Funktionen mit JavaScript zu simulieren. Der Nachteil dieses Ansatzes besteht darin, dass der Code chaotischer aussieht, wenn Hunderte von Parametern übergeben werden.