听过一个观点。很多中国家庭都还有一个难以放下的久思想,要媳妇生个男孩做为家族的延续,但讽刺的是,现在很多年轻人连爷爷奶奶叫什么名字都不知道,更别说爷爷的爸爸、爷爷的爷爷叫什么了。

听一个同事讲,他们村里有个宗祠,里面收藏了一本家族谱,始于明末清初,里面记载着每一个村民的名字,姓氏“舒”,为了逃避清兵到一个穷山僻岭农耕女织,延续至今。 仔细想想建立个家族谱还挺重要的,就比如你去面试遇到一个同姓的面试官,查族谱一看,竟然第前十代是对兄弟,这种血浓于水的亲切感瞬间就上来了。

所以我试图创造个原型链模型家族,凡是我家族的人,都可以被称为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的基因吗”?魔镜会果断的告诉你:“当然有,他可是我们的神”!

为了让别人也可以拥有原型链模型家族,我决定公开出此模型的图片版本:

我的原型链家族将要崛起。相关推荐

  1. 详解面向对象、构造函数、原型与原型链

    详解面向对象.构造函数.原型与原型链 为了帮助大家能够更加直观的学习和了解面向对象,我会用尽量简单易懂的描述来展示面向对象的相关知识.并且也准备了一些实用的例子帮助大家更加快速的掌握面向对象的真谛. ...

  2. JS中关于构造函数、原型链、prototype、constructor、instanceof、__proto__属性

    在Javascript不存在类(Class)的概念,javascript中不是基于类的,而是通过构造函数(constructor)和原型链(prototype chains)实现的.但是在ES6中引入 ...

  3. 原型链继承和构造函数继承

    //原型链继承function Father(name,age){//构造器this.name=name;this.age=age;this.say=function(){console.log(th ...

  4. 深入浅析js原型链和vue构造函数

    一.什么是原型链? 简单回顾下构造函数,原型和实例的关系: 每个构造函数(constructor)都有一个原型对象(prototype),原型对象都包含一个指向构造函数的指针,而实例(instance ...

  5. 一篇文章让你搞懂原型和原型链

    每一个构造函数在被创建的时候,会自动创建一个相应的对象,这个对象就是原型对象,这个函数有一个指向该对象的指针.举个例子: 下面创建了一个函数person. function person () { } ...

  6. Javascript原型链

    这是关于原型链的一系列的现象与原理的解释以及例子 [转载请注明出处与地址] 分成4个部分阐述: 1.如何创建一个对象 2.使用原型链prototype实现对象的继承. 3.原型链上属性和方法的联系与规 ...

  7. 用ECMAScript4 ( ActionScript3) 实现Unity的热更新 -- 使用原型链和EventTrigger

    原型链是JS的必备,作为ECMAScript4,原型链也是支持的. 特别说明,ActionScript3是支持完整的面向对象继承支持的,原型链只在某些非常特殊的情况下使用. 本文旨在介绍如何使用原型链 ...

  8. class 与 原型链 解析

    这篇文章只是我个人的见解,因为也是今年刚毕业,所以理解不一定非常的准确,如果理解有误希望大家告诉我. 一.class 相当于 拿实例对象的名字 来给 原型 命名. 为什么这么说呢. 先说说 es6中的 ...

  9. JavaScript原型链以及Object,Function之间的关系

    JavaScript里任何东西都是对象,任何一个对象内部都有另一个对象叫__proto__,即原型,它可以包含任何东西让对象继承.当然__proto__本身也是一个对象,它自己也有自己的__proto ...

最新文章

  1. Android Volley 库通过网络获取 JSON 数据
  2. 普通程序员如何用1年时间获取3年成长?
  3. jsp页面遍历后台传递的对象
  4. Apache Kafka-SpringBoot整合Kafka发送复杂对象
  5. Linux - 搭建FastDFS分布式文件系统
  6. C语言进制的格式字符,GB汉字文件转换成C语言Unicode十六进制字符串格式
  7. Word 2003中打开最近操作过的文档的两种推荐的方法
  8. snap7库C++版本对PLC数据的读写
  9. leslie人口预测模型matlab代码,leslie模型人口预测程序,请求大家!
  10. ArcGIS 地类净面积计算工具
  11. vue的Des加密解密
  12. qstring如何初始化_qstringlist 初始化
  13. 利用Udacity模拟器实现自己的自动驾驶小车
  14. VUE查询本周、本月、本季度
  15. textureview 缩放_TextureView实现视频播放详解
  16. 光线追踪算法—镜面反射
  17. React 中使用 render props
  18. java 机机接口定义_【JAVA】接口
  19. python列表的基本操作-python列表的用法
  20. 软通纽约_纽约地铁数学

热门文章

  1. 1 spss基本使用
  2. 全球及中国自助打印亭行业形势发展及十四五战略规划建议报告2021-2027年版
  3. 李开复教你如何发现自己的兴趣爱好
  4. GGhost一键恢复
  5. WIN7下 Absinthe2.0 已停止工作
  6. 计算机毕业设计asp.net党员信息管理系统(源码+系统+mysql数据库+Lw文档)
  7. Windows11安装方法(预览体验升级)
  8. WM6模拟器(测试软件的好工具)使用手册
  9. MDict中最好用的英语、汉语词典_我是亲民_新浪博客
  10. 深度学习训练技巧总结