Zuweisen von Prototypmethoden * innerhalb * der Konstruktorfunktion - warum nicht?

Stylistisch bevorzuge ich diese Struktur:

var Filter = function( category, value ){
  this.category = category;
  this.value = value;

  // product is a JSON object
  Filter.prototype.checkProduct = function( product ){
    // run some checks
    return is_match;
  }

};

Zu dieser Struktur:

var Filter = function( category, value ){
  this.category = category;
  this.value = value;
};// var Filter = function(){...}

Filter.prototype.checkProduct = function( product ){
  // run some checks
  return is_match;
}

Funktional gibt es irgendwelche Nachteile, wenn ich meinen Code auf diese Weise strukturiere? Führt das Hinzufügen einer prototypischen Methode zu einem Prototypobjekt im Hauptteil der Konstruktorfunktion (d. H. Bevor die Ausdrucksanweisung der Konstruktorfunktion geschlossen wird) zu unerwarteten Problemen bei der Festlegung des Gültigkeitsbereichs?

Ich habe die erste Struktur zuvor mit Erfolg verwendet, möchte aber sichergehen, dass ich mich nicht auf das Debuggen von Kopfschmerzen einlasse oder aufgrund schlechter Codierungspraktiken anderen Entwicklern Kummer und Ärger zufüge.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage