【发布时间】:2013-02-26 13:30:27
【问题描述】:
我有以下 Javascript 代码;
var Person = function(name, age) {
this.name = name;
this.age = age;
return this;
};
Person.prototype.getAge = function() {
alert("Age : " + this.age);
}
var p1 = new Person("xyz",10);
p1.getAge();
这非常有效,我收到警报 Age : 10
现在如果我更新如下代码(在实例化 Person 对象 p1 后定义 getAge());
var Person = function(name, age) {
this.name = name;
this.age = age;
return this;
};
var p1 = new Person("xyz",10);
Person.prototype.getAge = function() {
alert("Age : " + this.age);
}
p1.getAge();
它仍然将输出返回为“Age : 10”
现在我的问题是它如何正确工作,因为 Person.prototype.getAge 是在我们实例化 Person 对象 p1 之后定义的? 是因为“原型”的工作方式吗?
【问题讨论】:
标签: javascript oop prototype