Olvídese de todas las tonterías de bajo nivel sobre "referencias" (que no existen en JavaScript) y considere las reglas simples que se detallan a continuación. El término "objeto" se usa para representar un valor específico, que no es necesariamente un "Objeto"; esto no cambia las reglas, sino que refuerza la consistencia.
1) Un objeto es en sí. Si un objeto es mutable y si ese objeto es mutado entonces ese objeto ha sido mutado.
2) Una asignación no crea una copia/clon/duplicado de un objeto. Esto incluye los valores "asignados" a los parámetros en las llamadas a funciones. El objeto es el valor.
3) Una variable (o propiedad) no es un objeto, sino que es un nombre para un objeto (una manera bonita de decir "la variable se evalúa como un objeto dado"). Un objeto solo puede tener muchos "nombres" y sin embargo es el mismo objeto.
Todo lo demás es un detalle de implementación - referencias no se habla en la especificación en absoluto.Mientras, se debe tener en cuenta que los valores primitivos como number
y string
no tienen tienen propiedades adicionales asignadas (la asignación se ignora) mientras que los Objetos Number
y String
de envoltura son objetos de pleno valor. Esto es consistente con las reglas anteriores: no hay valores mutables que no sean Object en JavaScript. Para poder hablar sobre el lenguaje de JavaScript, los valores de las primitivas se pueden considerar como objetos, aunque son completamente inmutables y no son realmente Objetos.
Happy coding.
Se basa en la referencia. – BoltClock
posible duplicado de [¿Tiene JavaScript objetos de referencia de signo iguales o los clona?] (Http://stackoverflow.com/questions/7467335/does-javascript-equal-sign-reference-objects-or-clones-them) – RobG