听过一个观点。很多中国家庭都还有一个难以放下的久思想,要媳妇生个男孩做为家族的延续,但讽刺的是,现在很多年轻人连爷爷奶奶叫什么名字都不知道,更别说爷爷的爸爸、爷爷的爷爷叫什么了。
听一个同事讲,他们村里有个宗祠,里面收藏了一本家族谱,始于明末清初,里面记载着每一个村民的名字,姓氏“舒”,为了逃避清兵到一个穷山僻岭农耕女织,延续至今。 仔细想想建立个家族谱还挺重要的,就比如你去面试遇到一个同姓的面试官,查族谱一看,竟然第前十代是对兄弟,这种血浓于水的亲切感瞬间就上来了。
所以我试图创造个原型链模型家族,凡是我家族的人,都可以被称为object
。为了保持家族的有序繁殖,我给部分族人一个职称function
,和普通的族人相比,function
们拥有一个可操控的族人(克隆原体prototype
),function
可以使用魔法new
将自己的prototype
的基因附加到一个新的普通族人身上,每个族人可以给自己增加新的特性,当然也包括function
,但为了防止function
肆意破坏基因传递,new
魔法只可以萃取prototype
的基因。
为了辨识族人,我给每个族人赋予了__proto__
隐藏属性,此属性是用来告诉别人自己是由哪个prototype
复制而生的,prototype
同样也被赋予了__proto__
。
在我的家族里,我自称Object
,设定为function
型族人,我也操控着一个prototype
,此prototype
的基因是家族的最原始基因,为了区分他和别的prototype
,我给他设定了一个高贵的__proto__
属性null
,表示这是家族基因的源头。
为了让族人们都可以了解自己的前世今生,我制造了instanceof
魔镜,族人们对着魔镜问:“请问我身上有function xxx的基因吗”?魔镜就会顺着__proto__
属性一层层的往下找,如果到了__proto__
是null时还没找到,魔镜就会告诉你:“你没有此function xxx的基因”。当然,要是你对着魔镜问:“请问我身上有Object的基因吗”?魔镜会果断的告诉你:“当然有,他可是我们的神”!
为了让别人也可以拥有原型链模型家族,我决定公开出此模型的图片版本: