Consider the following code:
const log = ({a,b=a}) => console.log(a,b);
log({a:\'a\'})
The variable b
is assigned the value
Am I allowed to do this kind of default value assignment in a destructured object?
Yes. The destructuring expression is evaluated from left to right, and you can use variables that are already initialised from properties in the default initialiser expressions of later properties.
Remember that it desugars to
const log = (o) => {
var a = o.a;
var b = o.b !== undefined ? o.b : a;
// ^ a is usable here
console.log(a,b);
};