Hay que tener cuidado a la hora de asignar objetos como atributos del prototipo, ya que al ser compartido entre todas las instancias puede llevar a comportamientos inesperados:
Clásico ejemplo de esto:
Código Javascript
:
Ver originalvar Logger = function() {};
Logger.prototype._log = [];
Logger.prototype.log = function(message) {
this._log.push(message);
};
var logger = new Logger;
logger.log('Hello');
var anotherLogger = new Logger;
anotherLogger.log(' World!');
anotherLogger._log; // ["Hello", "World!"]