Javascript对象。原型vs对象。任何东西

Javascript对象。原型vs对象。任何东西,javascript,prototype,Javascript,Prototype,我正试着把我的头绕在JavaScripts原型对象上,经过一些测试,我看到将object.prototype设置为parent object.prototype或将其设置为parent object.a似乎可以产生相同的结果 下面是一些代码来更好地解释这一点 function Person(name) { this.name = name; } Person.a = {}; Person.a.getName = function(){ return this.name; } Pe

我正试着把我的头绕在JavaScripts原型对象上,经过一些测试,我看到将object.prototype设置为parent object.prototype或将其设置为parent object.a似乎可以产生相同的结果

下面是一些代码来更好地解释这一点

function Person(name) {
    this.name = name;
}
Person.a = {};
Person.a.getName = function(){
    return this.name;
}
Person.prototype.getName = function(){
    return this.name;
}
function Male(name) {
    this.gender = "male";
    this.name = name;
    return this;
}
function Female(name) {
    this.gender = 'female';
    this.name = name;
    return this;
}
Male.prototype = Person.a;
Female.prototype = Person.prototype;
var m = new Male("levi");
var f = new Female("cho");
f.getName(); //cho
m.getName(); //levi
我想我遗漏了原型对象如何工作的一个主要部分,但我不确定是什么


任何帮助都将不胜感激。

构造函数原型属性的唯一神奇之处在于它从对象引用参与属性查找的方式。在其他方面,它只是一个普通属性,它的值只是一个普通对象。@Pointy我明白了。所以每一级继承都有自己的原型对象和父原型对象?这是一个引用链。确切的细节让人眼花缭乱,但原型对象本身只是普通对象,可以像任何其他对象一样进行初始化、更新等。因此,Male.prototype=Person.a没有什么奇怪的地方,因为Person.a是一个非常好的对象,明白了。谢谢你有一个很好的参考资料吗?你可以推荐我在哪里可以阅读更多关于原型的资料?有一些在线资源。根据我在C/C++/Java背景下的经验,随着时间的推移,我了解到很少需要担心JavaScript继承,我编写了很多JavaScript代码。