Можно ли переопределить метод класса JavaScript?
При использовании функции конструктора в JavaScript для создания класса, возможно ли позднее переопределить метод класса?
Пример:
function Person(name)
{
this.name = name;
this.sayHello = function() {
alert('Hello, ' + this.name);
};
};
var p = new Person("Bob");
p.sayHello(); // Hello, Bob
Теперь я хотел бы переопределитьsayHello
нравится:
// This doesn't work (creates a static method)
Person.sayHello() = function() {
alert('Hola, ' + this.name);
};
поэтому, когда я создаю другойPerson
, новыйsayHello
метод будет вызван:
var p2 = new Person("Sue");
p2.sayHello(); // Hola, Sue
p.sayHello(); // Hello, Bob
РЕДАКТИРОВАТЬ:
Я понимаю, что могу послать аргумент типа «Привет» или «Привет»sayHello
для достижения другого выхода. Я также понимаю, что мог бы просто назначить новую функцию для p2 следующим образом:
p2.sayHello = function() { alert('Hola, ' + this.name); };
Мне просто интересно, могу ли я переопределить метод класса, чтобы новые экземплярыPerson
будет использовать новыйsayHello
метод.