一、原型

原型的作用:①数据共享,节约资源。②继承

例1:

let friend = new Person();
Person.prototype.sayHi = function() { console.log("hi");
};
friend.sayHi(); // "hi",没问题!

实例之所以能够调用原型的方法是因为,实例与原型之间松散的联系,他先从实例中寻找,发现找不到,然后从原型中寻找找到了,然后输出。

例2:

function Person() {}
let friend = new Person();
Person.prototype = { name: "Nicholas", age: 29, job: "Software Engineer", sayName() { console.log(this.name); }
};
friend.sayName(); // 错误

原因:重写整个原型会切断最初原型与构造函数的联系,但实例引用的仍然是最初的原型。
实例只有指向原型的指针,没有指向构造函数的指针。

二、原型链


定义:

每个构造函数都有一个原型对象,原型有一个属性指回构造函数,而实例有一个内部指针指向原型。如果原型是另一个类型的实例呢?那就意味着这个原型本身有一个内部指针指向另一个原型,相应地另一个原型也有一个指针指向另一个构造函数。这样就在实例和原型之间构造了一条原型链。这就是原型链的基本构想。

特例:

Object.__ proto__ === Function.prototype //true
Object.__ proto__ === Function.__ proto__//true
Object.prototype === Function.prototype.__ proto__ // true
//因此
Function instanceof Object //true
Object instanceof Function //true



浅谈原型及原型链的理解相关推荐

  1. 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系

    转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...

  2. 浅谈几种区块链网络攻击以及防御方案之拒绝服务攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/14/network_attack_of_blockchain_ddos_attack/ 写在前面的话 自比特币 ...

  3. 浅谈几种区块链网络攻击以及防御方案之女巫攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/13/network_attack_of_blockchain_sybil_attack/ 写在前面的话 自比特 ...

  4. 浅谈几种区块链网络攻击以及防御方案之日蚀攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/12/network_attack_of_blockchain_eclipse_attack/ 写在前面的话 自 ...

  5. 浅谈几种区块链网络攻击以及防御方案之51#37攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/ 写在前面的话 自比特币诞生 ...

  6. 浅谈几种区块链网络攻击以及防御方案之其它网络攻击

    旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/16/network_attack_of_blockchain_other_attack/ 写在前面的话 自比特 ...

  7. [原创]浅谈在创业公司对PMF的理解

    [原创]浅谈在创业公司对PMF的理解 在创业时,大多数人都常谈一个词叫"MVP",但PMF谈的比较少,PMF在创业公司尤为重要,以下谈谈个人一些看法. 1.什么是PMF? 创业公司 ...

  8. 浅谈对java编程思想的理解

    浅谈对java编程思想的理解 刚从学校毕业的时候,对于这种概念的理解少之又少 ,只是单纯的从事编码工作,理解也只是停留在对java基本概念的使用上,很局限!随后工作了快三年的时间里,自己不断的理解这种 ...

  9. 浅谈对IT架构师的理解

    写此文章来源于到新公司的感触,我在新单位任职解决方案架构师职位,到了新公司碰到新同事大多以一种"异样"的眼光看着我,或者发出一些声音,比如:"哇,架构师啊..." ...

  10. 浅谈javascript的原型和原型链(新手懵懂想学会原型链?看这篇文章就足够啦!!!)

最新文章

  1. uber_这就是我本可以免费骑Uber的方式
  2. 阿里云服务器安装Ubuntu图形化界面
  3. 防火墙/IDS测试工具Ftester
  4. linux deepin是基于linux mint修改
  5. 开发Java系统程序员要注意的基本知识
  6. 笔记-高项案例题-2019年下-计算题
  7. Codevs 3134 Circle
  8. mysql b-a全局索引_MySQL中B+树索引的使用
  9. Linux的openssl的安装
  10. P4240-毒瘤之神的考验【莫比乌斯反演,平衡规划】
  11. TensorFlow实现单隐层神经网络
  12. RAID 的各种方案
  13. RAKsmart:Linux SSH 客户端断开后保持进程继续运行配置方法
  14. 定制linux 安装光盘
  15. java拼音字符串的顺序,Java字符串按照汉语拼音排序
  16. 中国移动物联网开放平台OneNET学习笔记(1)——设备接入(MQTT协议)OneNET Studio篇
  17. type="button" ,"submit" 的区别
  18. 一个正经的前端学习 开源 仓库(阶段十四)
  19. eprint自定义打印工具
  20. Web寻梦狮ionic1实战1-环境搭建及项目介绍

热门文章

  1. 浅析js中取绝对值的2种方法
  2. 1.开源单点登录系统CAS 入门
  3. 重写boost内存池
  4. python怎么调成黑色背景_怎么切换pycharm软件的背景颜色为黑色
  5. 《新课程教学》期刊简介及投稿须知
  6. Android Code Review 注意点记录(不断更新~)
  7. 应用安全系列之一:SQL注入
  8. 安卓(Android)面试题库(含答案)
  9. X299+10代10900XOpenCore引导安装macOS Catalina10.15.5
  10. js 字节数组转数字以及数字转字节数组