¿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.