Javascript Can';在JS控制台Chrome中看不到对象的原型

Javascript Can';在JS控制台Chrome中看不到对象的原型,javascript,google-chrome,prototypal-inheritance,Javascript,Google Chrome,Prototypal Inheritance,我正试图通过使用Chrome开发者控制台了解原型继承。这是我用来设置原型链的代码: var Organism = Object.create(null); undefined var Animal = Object.create(Organism); undefined var Mammal = Object.create(Animal); undefined var Dog = Object.create(Mammal); undefined var Spot = Object.create(

我正试图通过使用Chrome开发者控制台了解原型继承。这是我用来设置原型链的代码:

var Organism = Object.create(null);
undefined
var Animal = Object.create(Organism);
undefined
var Mammal = Object.create(Animal);
undefined
var Dog = Object.create(Mammal);
undefined
var Spot = Object.create(Dog);
undefined
我可以为生物体和哺乳动物对象添加一些属性:

Mammal.hasHair = true;
true
Organism.hasHair = false;
false
接下来,我为Dog对象定义一些变量:

Dog.numLegs = 4;
4
Dog.speak = function(){return 'woof, woof!';};
function (){return 'woof, woof!';}
最后,我为Spot定义了一些变量

Spot.color = 'White';
"White"
Spot.pattern = 'Spots';
"Spots"
Spot.patternColor = 'Black';
"Black"
Spot.weight = 22
22
然而,由于某种原因,当我检查狗对象时,它输出这样的属性,我看不到它的原型

Spot;
Object {color: "White", pattern: "Spots", patternColor: "Black", weight: 22}
dir(Spot);
Object
color: "White"
pattern: "Spots"
patternColor: "Black"
weight: 22
或者如果我尝试这个,我仍然看不到它的原型

Spot;
Object {color: "White", pattern: "Spots", patternColor: "Black", weight: 22}
dir(Spot);
Object
color: "White"
pattern: "Spots"
patternColor: "Black"
weight: 22

如果我没有弄错的话,我是否应该有一个名为
\u proto\u
的属性,它将指向狗对象的原型,即哺乳动物?如何检查对象以查看此属性?

使用
var有机体=新对象(null)etc确实创建了一个原型对象,并按预期工作

我并不完全理解这一点,但这似乎是因为没有构造函数就无法创建原型。因此,在构造
新对象()
时,您创建了一个原型。但是,
Object.create()
只返回一个对象,如果尝试
new Object.create()
,很明显这不是构造函数

值得阅读的构造器和原型:


我希望有一个更全面的答案,因为我也希望在返回的对象中有一个原型。按照您的步骤,我复制了相同的结果。

您需要使用对象构造函数的原型创建第一个对象,如下所示:

var Organism = Object.create(Object.prototype);
创建一个带有null作为原型的对象将创建一个没有任何属性的对象,包括
\u proto

要更深入地查看Object.create,请签出:
顺便说一句,它是
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。