Al crear objetos javascript, puedo poner una declaración de método en la función de constructor o en el prototipo. Por ejemplo, digamos que quiero una clase Dog que tenga una propiedad Name y un método Bark. Puedo poner la declaración del método de la corteza en la función constructora:Declarar el método de objeto javascript en la función de constructor vs. en el prototipo
var Dog = function(name) {
this.Name = name;
this.Bark = function() {
alert(this.Name + " bark");
};
}
o que pudiera poner en como un método en el objeto prototipo:
var Dog = function(name) {
this.Name = name;
}
Dog.prototype.Bark = function() {
alert(this.Name + " bark");
};
Cuando instancias de objetos de tipo Perro, ambos los enfoques parecen funcionar bien:
var dog = new Dog("Fido");
dog.Bark(); //Both approaches show "Fido bark"
¿Debo preferir uno de estos enfoques sobre el otro? ¿Hay alguna ventaja al usar una sobre la otra? Detrás de escena, ¿estos dos enfoques terminan haciendo exactamente lo mismo? ¿Qué enfoque tiende a favorecer la mayoría de las personas?
Gracias por la ayuda.
... y [¿Uso de 'prototipo' frente a 'esto' en Javascript?] (Http://stackoverflow.com/q/310870/1048572) y otros – Bergi