Si creo un objeto haciendo let obj = {} , puedo crear una nueva propiedad de link haciendo obj.link = 'test' y funciona.
¿Qué sucede si, en cambio, quiero crear una propiedad anidada?
El siguiente código da un error undefined :
let obj = {} obj.link.link = 'test' console.log(obj.link.link)¿Cuál es la forma correcta de hacer esto?
Está intentando acceder a la propiedad del enlace dentro del enlace, que no está allí en ese momento. Entonces puedes hacer las cosas a continuación.
obj = {} obj.link = {}; obj.link.link = 'test'; console.log(obj.link.link); console.log(obj);O
obj = {} obj.link = {link: 'test'} console.log(obj.link.link); console.log(obj);Debe tener un objeto para abordar una propiedad dentro de un objeto.
Para asignar use un objeto predeterminado y asigne el valor a la última propiedad.
let obj = {}; (obj.link ??= {}).link = 'test'; console.log(obj.link.link); console.log(obj);