Todos los objetos en Javascript son dinámicos

Arrays, funciones, constructores, prototipos, … Todos son dinámicos y si no tenemos cuidado sufriremos las consecuencias.
Todos los objetos en javascript son dinámicos, lo que quiere decir que en cualquier momento podemos añadir propiedades y métodos a nuestro objeto:
[sourcecode language=”javascript” wraplines=”false”]
var persona = {
nombre : ‘persona’,
getNombre : function() {
return this.nombre;
}
};
// …
persona.telefono:’91 XXX XX XX’;
[/sourcecode]

Las variables de tipo objeto son referencias a un objeto, y se pasan a las funciones por referencia, no por valor. Esto hace que para copiar un objeto nos tengamos que inventar algún que otro truco.
Pero sobre todo, nos obliga a ser especialmente cuidadosos:
[sourcecode language=”javascript” wraplines=”false”]
var pedro = persona;
pedro.nombre = ‘pedro’;
console.log(pedro.nombre); // >>> ‘pedro’
// Pero, sorpresa !!
console.log(persona.nombre); // >>> ‘pedro’
[/sourcecode]
La variable pedro es una referencia al objeto persona, al cambiar la propiedad nombre en pedro estamos cambiando, en realidad, el objeto persona.

Una respuesta a “Todos los objetos en Javascript son dinámicos”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *