Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

225
Visualizações
¿Alguien puede explicarme por qué la respuesta es {nombre: 'Linda'};
let person = { name : 'Linda'}; let members = person; person = null console.log(members)

el resultado es {nombre: 'Linda'} pero lo que aprendí sobre el tipo de referencia es que los miembros y la persona tienen la misma dirección de memoria

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

...pero lo que aprendí sobre el tipo de referencia es que los miembros y la persona tienen la misma dirección de memoria...

Algo así como. Ambos contienen una referencia al mismo objeto, que está en otra parte de la memoria (no literalmente dentro de las variables). (Ya sea que sea literalmente una dirección de memoria o lo que sea que sea un detalle de implementación que no necesita preocuparse, y puede diferir de un motor de JavaScript a otro motor de JavaScript).

Cuando haces person = null , todo lo que estás haciendo es borrar esa referencia de la variable de person . Hacer eso no tiene ningún efecto sobre los members o sobre el objeto al que se refiere.

Hagamos esto paso a paso:

 let person = { name : 'Linda'};

Para manejar eso, el motor de JavaScript crea un objeto en la memoria. Ese objeto tendrá algún tipo de forma de referirse a él llamado referencia de objeto. Para nuestros propósitos, digamos que es Ref1234 (ese nombre no tiene un significado subyacente, literalmente lo elegí al azar para tener un nombre para usar):

                        +−−−−−−−−−−−−−−−+
Ref1234---------------->| (objeto) |
                        +−−−−−−−−−−−−−−−+
                        | nombre: "Linda" |
                        +−−−−−−−−−−−−−−−+

Luego, el motor de JavaScript almacena esa referencia en la variable person :

                        +−−−−−−−−−−−−−−−+
Ref1234-----------+--->| (objeto) |
                  | +−−−−−−−−−−−−−−−+
                  | | nombre: "Linda" |
                  | +−−−−−−−−−−−−−−−+
persona: Ref1234 −+

Entonces hacemos:

 let members = person;

Lo que también copia la referencia en person en los members :

                        +−−−−−−−−−−−−−−−+
Ref1234−−−−−−−−−−−+−+−−>| (objeto) |
                  | | +−−−−−−−−−−−−−−−+
                  | | | nombre: "Linda" |
                  | | +−−−−−−−−−−−−−−−+
persona: Ref1234 −+ |
                    |
miembros: Ref1234 −−−+

Entonces hacemos:

 person = null;

Todo lo que hace es poner null en person :

                        +−−−−−−−−−−−−−−−+
Ref1234-------------+-->| (objeto) |
                    | +−−−−−−−−−−−−−−−+
                    | | nombre: "Linda" |
                    | +−−−−−−−−−−−−−−−+
persona: nula |
                    |
miembros: Ref1234 −−−+

Eso no cambia nada más en absoluto. Asi que

 console.log(members)

muestra el objeto.

Si luego hiciste members = null; o la variable de members quedó fuera del alcance sin que ningún cierre la retuviera, etc., y si era lo único que quedaba que contenía Ref1234, entonces el motor de JavaScript podría recolectar elementos no utilizados. Pero eso no sucede cuando haces person = null; porque otra cosa ( members ) tiene una copia de la referencia.

about 4 years ago · Juan Pablo Isaza Relatório

0

Cuando asigna una persona a los miembros, el miembro almacenará la dirección de la persona en este momento. Luego asigna persona a nulo para que esa persona apunte a otra dirección pero no cambie el valor de la dirección existente. Entonces, los miembros aún conservan la dirección anterior y su valor.

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda