たとえばjsFiddleでこれを実行すると:
function Animal() {
}
var animal = new Animal();
console.log(animal);
console.log(Animal.prototype);
console.log(animal.__proto__);
Animal {}
次に、Chrome の DevTool ウィンドウのコンソールでこれらの結果 (3x) を取得します。
Animal {} (index):26
Animal {} (index):27
Animal {} (index):28
私の意見では、これは非常に紛らわしいです。なぜなら、私たちが知っているのは、この場合は同じオブジェクトを指しているだけだからAnimal.prototype
ですanimal.__proto__
。それとも、そうする合理的な理由がありますか?