¿Es posible redefinir el método de una clase de JavaScript?

Cuando se utiliza una función constructora en JavaScript para crear una clase, ¿es posible redefinir el método de la clase más adelante?

Ejemplo:

function Person(name)
{
    this.name = name;
    this.sayHello = function() {
        alert('Hello, ' + this.name);
    };
};

var p = new Person("Bob");
p.sayHello();   // Hello, Bob

Ahora me gustaría redefinirsayHello Me gusta esto:

// This doesn't work (creates a static method)
Person.sayHello() = function() {
   alert('Hola, ' + this.name);
};

así que cuando creo otroPerson, el nuevosayHello Se llamará método:

var p2 = new Person("Sue");
p2.sayHello();   // Hola, Sue
p.sayHello();    // Hello, Bob

EDITAR:

Me doy cuenta de que podría enviar un argumento como "Hola" o "Hola" asayHello Para lograr la salida diferente. También me doy cuenta de que simplemente podría asignar una nueva función a p2 como esta:

p2.sayHello = function() { alert('Hola, ' + this.name); };

Me pregunto si puedo redefinir el método de la clase para nuevas instancias dePerson utilizará el nuevosayHello método.

Respuestas a la pregunta(2)

Su respuesta a la pregunta