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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage