JavaScript, method overloading (like in languages such as Java or C#) isn’t directly supported because functions can only have one definition. However, JavaScript being dynamic allows us to mimic overloading using techniques like:
Checking arguments count or types.
Using default parameters.
Using arguments or rest parameters.
Below are some ways to implement overloading behavior.
1. Using arguments Object
`function add() {
if (arguments.length === 1) {
return arguments[0]; // Single argument
} else if (arguments.length === 2) {
return arguments[0] + arguments[1]; // Two arguments
}
}
console.log(add(5)); // 5
console.log(add(5, 10)); // 15`
arguments is an array-like object that holds all the parameters passed to the function.
Based on the number of arguments, we perform different logic.
2. Overloading with Type Checks
`function greet(name) {
if (typeof name === "string") {
console.log(`Hello, ${name}!`);
} else if (Array.isArray(name)) {
console.log(`Hello, ${name.join(", ")}!`);
}
}
greet("Alice"); // Hello, Alice!
greet(["Alice", "Bob"]); // Hello, Alice, Bob!`
Top comments (0)