Sobrecarga de funciones de JavaScript
-
Use la declaración
if-else
para hacer la sobrecarga de funciones en JavaScript -
Use la declaración
switch
para hacer la sobrecarga de funciones en JavaScript - Use expresiones de función para hacer la sobrecarga de funciones en JavaScript
Este tutorial lo educa sobre la sobrecarga de funciones de JavaScript. La sobrecarga de funciones significa tener más de una función con el mismo nombre y varias implementaciones. Pero, este concepto no está disponible en JavaScript.
Si tiene varias funciones con el mismo nombre, la última función se ejecuta en JavaScript. Entonces, usamos alternativas para implementar la sobrecarga de funciones en JavaScript.
Este tutorial utiliza expresiones if-else
, switch
y function expressions
para lograr la sobrecarga de funciones.
Use la declaración if-else
para hacer la sobrecarga de funciones 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
Producción :
"No argument is passed."
"You have to pass at least two arguments to perform addition."
"Sum is 9"
"Sum is 41"
En el fragmento de código, usamos la instrucción if-else
para realizar la sobrecarga de funciones en JavaScript. Llamamos a la función displaySum()
que funciona de manera diferente con diferentes parámetros. Muestra un mensaje si no se pasa ningún parámetro o se pasa uno.
Suma los dos números si se dan dos parámetros y utiliza un bucle for
para sumar todos los valores en múltiples parámetros. Los argumentos
son objetos en forma de matriz que juegan un papel vital y se pueden usar dentro de la función. Representa los argumentos
pasados de esa función particular en la que se está utilizando.
Use la declaración switch
para hacer la sobrecarga de funciones en JavaScript
También podemos implementar la sobrecarga de funciones en JavaScript usando la declaración switch
en lugar de la declaración if-else
. Aunque ambos están produciendo el mismo resultado, el código se ve más limpio con la instrucción 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
Producción :
"No argument is passed."
"You have to pass at least two arguments to perform addition."
"Sum is 9"
"Sum is 41"
En este código, usamos la declaración switch
para realizar diferentes acciones basadas en varios argumentos. Puedes leer sobre el objeto argumentos
aquí o en la sección anterior.
Use expresiones de función para hacer la sobrecarga de funciones 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
Producción :
"No parameter is passed."
"You must have at least two parameters to sum."
"Sum is given below: "
5
"Sum is given below: "
11
Usamos función y expresión de función para simular la sobrecarga de funciones usando JavaScript. La desventaja de este enfoque es que el código se ve más desordenado si se pasan cientos de parámetros.