次の 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();
それでも「年齢:10」として出力が返されます
Person オブジェクト p1 をインスタンス化した後に Person.prototype.getAge が定義されたので、私の質問はこれがどのように正しく機能するかです。「プロトタイプ」の仕組みのせいですか?