Entonces, tengo una función con un objeto como parámetro:
function example(options = { param1: true, param2: 42 }) { return options.param2; }El problema es que si llamo a la función con parámetros como este:
example({ param1: false }); el valor predeterminado para options.param2 se anula y se establece en undefined , aunque no se definió cuando se llamó a la función. Me doy cuenta de por qué sucede esto (el objeto es todo un parámetro, por lo que todo se establece cuando llama a la función), pero ¿hay alguna manera fácil de evitar que esto suceda, aparte de hacer que todos los parámetros del objeto sean sus propios argumentos en el ¿función?
En su lugar, desestructura el argumento y asigna valores desestructurados predeterminados.
function example({ param1 = true, param2 = 42 } = {}) { return param2; }