Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

214
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!