Di que tengo un objeto
let a = { b: { name: "Sugarcane" } }y lo hago
let c = ab y luego anulo el objeto a así:
a = null ¿La referencia al objeto b por c evita que el objeto anterior almacenado en a sea recolectado como basura en Javascript?
En realidad no , siempre que haya una referencia al objeto almacenado en la memoria, el GC no podrá liberar este objeto de la memoria.
Cuando anulas el objeto A , se elimina de la memoria, pero esto no afecta sus propiedades si son objetos y están almacenados en otra variable.
Simplemente está cambiando la referencia de A a NULL , pero B seguirá existiendo en la memoria mientras C siga teniendo su referencia almacenada.
B solo se eliminará de la memoria cuando se anule C
let a = { b: { name: "Sugarcane" } }; let c = ab; a = null; console.log( "A value: ", a, "\nC value:", c, "\nC.name value:", c.name );