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:

var persona = {
    nombre : 'persona',
    getNombre : function() {
        return this.nombre;
    }
};
// ...
persona.telefono:'91 XXX XX XX';

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:

var pedro = persona;
pedro.nombre = 'pedro';
console.log(pedro.nombre);    // >>> 'pedro'
// Pero, sorpresa !!
console.log(persona.nombre);  // >>> 'pedro'

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 *