this vs. protótipo [duplicado]
Esta pergunta já tem uma resposta aqui:
Utilização de 'prototype' vs. 'this' em JavaScript? 14 respostasual é a diferença entre definir o método "area" como uma propriedade de "this" em vez de "prototype"
//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)
EmJavaScript - The definitive guide
na seçãoPrototypes and Inheritance
doChapter 9 , part 1
, o autor diz que definir o método "área" dentro do objeto protótipo é benéfico, mas sua explicação não era realmente compreensível:
".. a área de cada objeto Rectangle sempre se refere à mesma função (é claro que alguém pode alterá-lo, mas você geralmente pretende que os métodos de um objeto sejam constantes). É ineficiente usar propriedades regulares para métodos que devem ser compartilhados por todos os objetos da mesma classe (ou seja, todos os objetos criados com o mesmo construtor). "
Eu sei que esta pergunta parece comist um, mas não é.