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);