私はWeb開発者向けのプロのJavaScriptを読んでいますが、彼らは次のことを示しています。
このコードは機能します:
var friend = new Person();
Person.prototype.sayHi = function(){
alert("hi");
};
friend.sayHi();
しかし、このコードはしません:
function Person(){
}
var friend = new Person();
Person.prototype= {
constructor: Person,
name: "Nicholas",
age: 29,
job: "Software Engineer",
sayName: function () {
alert(this.name);
}
};
friend.sayName();
2番目の例では、変数がインスタンス化された後にプロトタイプが定義されているfriend
ことがわかりますが、その場合、最初の例が機能するのはなぜですか?