este vs. prototipo [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Uso de 'prototipo' vs. 'esto' en JavaScript? 14 respuestas¿Cuál es la diferencia entre definir el método "área" como una propiedad de "esto" en lugar de "prototipo"?
//console.clear()
function Rectangle(w, h)
{
this.width = w;
this.height = h;
this.area = function( ) { return this.width * this.height; }
}
var r = new Rectangle(2, 3);
var a = r.area( );
//console.log(a)
function Square(s)
{
this.side= s;
}
Square.prototype.area = function(){return this.side * this.side; }
var r = new Square(2);
var a = r.area( );
//console.log(a)
InJavaScript - The definitive guide
en la secciónPrototypes and Inheritance
deChapter 9 , part 1
, el autor dice que definir el método "área" dentro del objeto prototipo es beneficioso, pero su explicación no fue realmente comprensible:
".. el área de cada objeto Rectangle siempre se refiere a la misma función (alguien puede cambiarla, por supuesto, pero usualmente piensa que los métodos de un objeto son constantes). No es eficiente usar propiedades regulares para métodos que están destinados a ser compartidos por todos los objetos de la misma clase (es decir, todos los objetos creados con el mismo constructor) ".
Sé que esta pregunta casi pareceest uno, pero no lo es.