Learn how to use Object.assign to combine multiple objects together. This pattern is helpful when writing libraries that have a set of default options where you want to allow a user to override specific options. You'll also learn how to use a third party library to recursively merge nested objects together.
const defaultOptions = { amount: 10, quantity: 1, color: 'maroon', material: 'cotton', sizes: { small: true, medium: true, large: true } }; function inventory(userOptions) { console.log(Object.assign({}, defaultOptions, userOptions)); /* [object Object] { amount: 15, color: "maroon", material: "wool", quantity: 6, sizes: [object Object] { extraLarge: true } } */ console.log(_.merge({}, defaultOptions, userOptions)); /* [object Object] { amount: 15, color: "maroon", material: "wool", quantity: 6, sizes: [object Object] { extraLarge: true, large: true, medium: true, small: true } } */ }; inventory({ amount: 15, quantity: 6, material: 'wool', sizes: { extraLarge: true } });