次の 2 つのコード ブロックを別々に実行しようとすると、最初の 1 つ:
function Hallo() {
}
var some_obj = {
name: "Fred",
age: 23,
}
Hallo.prototype = some_obj;
var obj = new Hallo();
obj.constructor;
そして2番目のもの:
function Hallo() {
}
Hallo.prototype.name = 'Khanh';
Hallo.prototype.age = 23;
var obj = new Hallo();
obj.constructor;
Firebug のコンソールで結果が得られました。最初は「Object{}」、2 番目は「Hallo()」です。2 番目のものは非常に簡単に理解できますが、最初のものは非常に奇妙です。私が知っているように、最初のオブジェクトの obj オブジェクトのコンストラクターは同じです (つまり、Hallo() 関数)。ただし、結果として Object() 関数を取得しました。理由が本当にわかりません。手伝ってくれませんか?ありがとうございました!