I've found lots of creative ways to set default parameters in ES5 & ES6 but I have yet to see a simple example of how to override default parameters in JavaScript. Take this example:
new Connection(host, port = 25575, password, timeout = 5000)
The default timeout is fine but the port number is not. When calling this function, JavaScript always treats the second parameter as the password parameter:
myConnection = connFactory.getConnection(process.env.IP,
process.env.PORT,
process.env.PASSWORD)
This code results in an authentication error because the second parameter is assumed to be password. How can I override the default parameter for port without modifying the original function definition?
You may use a config object as a parameter for your function. For example:
function foo({a='SO', b}) {
console.log(a, b)
}
foo({b: 'Yeap', a: 'baz'}) // baz Yeap
foo({b: 'foo'}) // SO foo
It will guarantee your ordering.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With