Combine default parameters and destructuring for a compact version of the defaults / overrides pattern.
function foo ({
bar = 'no',
baz = 'works!'
} = {}) {
return (`${bar}, ${baz}`);
}
console.log(foo({
bar: 'yay'
})); // logs 'yay, works!'
Equivalent to ES5:
This bit needs to be polyfilled, Or use $.extend(), _.extend(), lodash/object/assign aka _.assign() or equivalent.
var assign = Object.assign;
var defaults2 = {
bar: 'no',
baz: 'works!'
};
function foo2 (options) {
var settings = assign({}, defaults2, options),
bar = settings.bar,
baz = settings.baz;
return (bar + ', ' +baz);
}
console.log(foo2({
bar: 'yay'
})); // logs 'yay, works!'
Gist written for How to Use ES6 for Isomorphic JavaScript Apps