在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
编辑:
我意识到我可以发送像“Hello”或“Hola”这样的参数sayHello
来完成不同的输出。我也意识到我可以像这样简单地为 p2 分配一个新函数:
p2.sayHello = function() { alert('Hola, ' + this.name); };
我只是想知道是否可以重新定义类的方法,以便 的新实例Person
将使用新sayHello
方法。