Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

161
Vistas
El valor de la propiedad del objeto no cambió como se esperaba

Solo quería saber por qué en mi código he cambiado cr = 6 en un método, pero al imprimir el valor obj cr original, no se cambia a 6, pero sigue siendo su valor original. ¿Por qué? Si, en cambio, uso cr.next = 6, entonces el valor se cambia en el obj original. Espero obj.next = 6 . La salida generada es:

 { val: 1, next: { val: 2, next: { val: 3, next: null } } }

Esperaba que la salida fuera así:

 { val: 1, next: 6 } 

 let obj = { val: 1, next: { val: 2, next: { val: 3, next: null } } } cr = obj.next; cr = 6; console.log(obj)

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

La primera parte,

 cr = obj.next;

Significa "El valor del identificador (la palabra cr ) es el valor en la ubicación de la memoria que es el objeto obj.next "

 cr = 6;

Significa "Ignorar por completo cualquier valor anterior de cr ; el valor del identificador cr ahora es el literal entero 6 "


JavaScript, a diferencia de C/C++ (con punteros o pass-by-reference vs pass-by-value), no tiene forma de cambiar el valor de un objeto con un único identificador (nombre de variable). Puede cambiar el valor de la variable, pero no el objeto al que apuntaba anteriormente.

about 4 years ago · Juan Pablo Isaza Denunciar

0

 let obj = { val: 1, next: { val: 2, next: { val: 3, next: null } } } cr = obj.next; cr = 6; console.log(obj) console.log("...........................") obj.next = 6 console.log(obj) console.log("...........................") console.log(cr) cr = obj.next; cr = 6;

Cuando haces cr = obj.next , crea una nueva variable y asigna el valor obj.next a cr. Después de eso, asigna 6 a cr para que sobrescriba el valor actual de cr y solo habrá 6.

Si desea una respuesta como {val: 1, next: 6} , debe escribir obj.next = 6 para obtener el resultado deseado.

Espero que te ayude a "seguir codificando".

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda