Ist es möglich, die Methode einer JavaScript-Klasse neu zu definieren?
Ist es bei Verwendung einer Konstruktorfunktion in JavaScript zum Erstellen einer Klasse möglich, die Methode der Klasse später neu zu definieren?
Beispiel:
function Person(name)
{
this.name = name;
this.sayHello = function() {
alert('Hello, ' + this.name);
};
};
var p = new Person("Bob");
p.sayHello(); // Hello, Bob
Jetzt möchte ich neu definierensayHello
so was:
// This doesn't work (creates a static method)
Person.sayHello() = function() {
alert('Hola, ' + this.name);
};
also wenn ich ein anderes erstellePerson
, das neuesayHello
Methode wird aufgerufen:
var p2 = new Person("Sue");
p2.sayHello(); // Hola, Sue
p.sayHello(); // Hello, Bob
BEARBEITEN:
Mir ist klar, dass ich ein Argument wie "Hallo" oder "Hola" an senden könntesayHello
die unterschiedliche Ausgabe zu erreichen. Mir ist auch klar, dass ich p2 einfach eine neue Funktion zuweisen könnte:
p2.sayHello = function() { alert('Hola, ' + this.name); };
Ich frage mich nur, ob ich die Methode der Klasse so neu definieren kann, dass neue Instanzen vonPerson
wird das neue verwendensayHello
Methode.