每一个构造函数在被创建的时候,会自动创建一个相应的对象,这个对象就是原型对象,这个函数有一个指向该对象的指针。举个例子:

下面创建了一个函数person。

function person () {

}

则 person.prototype 就是原型对象。而原型对象里面又有一个指针,指向函数,即person.prototpe.constructor === person(函数)

接下来创建一个实例:

const p1 = new person();

实例可以访问原型对象的所有属性和方法。咱们可以手动给原型添加方法。person.prototype.name = '飞机'

然后打印一下  p1.name    // 飞机

实例里面也有一个指针指向原型对象 即 p1._proto_ === person.prototype   (这个指针就是原型链的关键所在)

然后你可能也会有一个大胆的想法:既然实例可以继承原型对象的所有属性和方法,那如果我让另一个函数的原型作为这个函数的实例的话,另一个函数不就就可以访问这个原型的属性和方法了。

接下来再创建一个函数

function people (){

}

当然people.prototype就是 people 这个函数的原型了

那么,咱们就把这个原型当作person函数的实例

people.prototype = new person();

然后咱们 给 people 也创建一个实例,如果这个实例的name为 飞机 ,那么说明这个继承是成功的

const pe1 = new perple();

打印一下 pe1.name    // 飞机

这里需要注意的是,因为people的原型被重写了,所以people原型的constructor 就是 person原型的constructor

下面是我在控制台打印的一些信息,作为辅助

转载于:https://www.cnblogs.com/hamili/p/10960613.html

一篇文章让你搞懂原型和原型链相关推荐

  1. 一篇文章带你搞懂网络层(网际层)-- 地址篇

    网络层(Network Layer)是OSI模型中的第三层(TCP/IP模型中的网际层),提供路由和寻址的功能,使两终端系统能够互连且决定最佳路径,并具有一定的拥塞控制和流量控制的能力.相当于发送邮件 ...

  2. 一篇文章带你搞懂 DEX 文件的结构

    From:https://blog.csdn.net/sinat_18268881/article/details/55832757 Dex文件格式详解:https://www.jianshu.com ...

  3. 一篇文章带你搞懂微信小程序的开发过程

    点击上方"前端进阶学习交流",进行关注 回复"前端"即可获赠前端相关学习资料 今 日 鸡 汤 只解沙场为国死,何须马革裹尸还. 大家好,我进阶学习者. 前言 小 ...

  4. 谷歌SEO很复杂?一篇文章带你搞懂它(外贸人必读)

    这篇文章是对谷歌SEO流程的一个梳理,此文会用通俗易懂的语言告诉你做Google SEO必须知道的常识.建议和谷歌优化的方法思路. 任何关于谷歌SEO的疑问,可到此文⬇️留言,免费咨询: Google ...

  5. 一篇文章带你搞懂前端面试技巧及进阶路线

    大家好,我是若川.最近有很多朋友给我后台留言: 自己投了不少简历,但是收到的面试邀请却特别少: 好不容易收到了大厂的面试邀请,但由于对面试流程不清楚,准备的特别不充分,结果也挂了: 对于面试官的问题, ...

  6. 区块链应用 | 一篇文章让你搞懂区块链,非标通证应用将首先落地

    近期,区块链领域火热,越来越多的力量正在加入这一市场,就在昨日美图还发布了区块链白皮书. 不过,区块链市场喧嚣,陷入各种炒币的喧嚣.就在日前,CSDN副总裁孟岩以<区块链关键技术>的口述形 ...

  7. 一篇文章带你搞懂慢SQL以及优化的策略

    文章目录 一.什么是慢SQL ? 二.为什么要对慢SQL进行优化? 三.数据库性能 1. 最大数据量 2. 最大并发数 3. 查询耗时0.5秒 4. 具体实施 四.数据库表的设计 1. 数据类型 2. ...

  8. 一篇文章带你搞懂数据链路层

    数据链路层,简称链路层.两个主机之间的数据传输,总是在一段一段的链路上面传送的,也就是说,在两个相邻结点之间(主机与路由器之间 或者 两个路由器之间)传送数据是直接传送的(点对点).这时,就需要使用专 ...

  9. 一篇文章教你搞懂10种电商模式

    作者:三金(转载已取得作者授权) 谈及"电商"二字,想写的内容确实有太多太多,不知从何写起.为了更好的照顾到读者需求,笔者特地花了2周时间为大家梳理了迄今为止10种相对成熟的电商模 ...

最新文章

  1. Linux安装mysql,一步到位!
  2. Go 知识点(12) — 类型转换以三方库 cast
  3. 项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦)...
  4. linux bash command not found
  5. 区块链BaaS云服务(25)边界智能 IRITA平台
  6. 终于弄明白 i = i++和 i = ++i 了
  7. 我程序中用到的第一个递归算法
  8. 在Spring Boot中使用@Scheduled实现定时任务
  9. 软件测试个人心得总结
  10. python数据类型有哪些、分别有什么用途_python中的数据类型有哪些
  11. ubuntu中显示本机的gpu_Ubuntu下如何查看GPU版本和使用信息
  12. C++工作笔记-对二级指针的进一步理解(函数的参数使用二级指针,从而操作原数据)
  13. DFINITY创始人:目前仍以Q1路线图为主要目标,正在进行创世启动前的安全审计
  14. ng-model 数据不更新 及 ng-repeat【ngRepeat:dupes】错误
  15. 在计算机中 总线简称,微机中的总线一般分为几等
  16. HYSPLIT模式简介及使用
  17. win10永久设置护眼颜色
  18. 远程访问计算机硬盘,60秒远程访问路由器硬盘!瞬间变NAS!
  19. 【错误率、精度、查准率、查全率和F1度量】详细介绍
  20. Jenkins基础:使用NPM构建前端应用1: nodejs插件的安装与设定

热门文章

  1. UICollectionView
  2. hadoop上的pageRank算法
  3. 菜鸟初涉SQL Server的总结
  4. 舒尔补在SLAM中的应用
  5. fanuc机器人四边形编程_FANUC机器人示教编程:原始路径恢复功能介绍与使用方法...
  6. 列名无效怎么解决_PowerQuery批量合并Excel,前面有空行且不相等的解决办法
  7. 软件自动测试框架,软件自动化测试框架的研究和实现
  8. mysql ls命令,Linux 常用 ls命令详解
  9. java jms消息删除_activemq的topic消息一直都会存在数据库中,为什么不会删除
  10. 推理计算过程_转导推理—Transductive Learning