浅谈原型及原型链的理解
一、原型
原型的作用:①数据共享,节约资源。②继承
例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
浅谈原型及原型链的理解相关推荐
- 浅谈javascript中原型(prototype)、构造函数、对象实例及三者之间的关系
转自:http://www.cnblogs.com/zhangwei412827/archive/2012/12/14/2816263.html 浅谈javascript中原型(prototype). ...
- 浅谈几种区块链网络攻击以及防御方案之拒绝服务攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/14/network_attack_of_blockchain_ddos_attack/ 写在前面的话 自比特币 ...
- 浅谈几种区块链网络攻击以及防御方案之女巫攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/13/network_attack_of_blockchain_sybil_attack/ 写在前面的话 自比特 ...
- 浅谈几种区块链网络攻击以及防御方案之日蚀攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/12/network_attack_of_blockchain_eclipse_attack/ 写在前面的话 自 ...
- 浅谈几种区块链网络攻击以及防御方案之51#37攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/11/network_attack_of_blockchain_51_attack/ 写在前面的话 自比特币诞生 ...
- 浅谈几种区块链网络攻击以及防御方案之其它网络攻击
旧博文,搬到 csdn 原文:http://rebootcat.com/2020/04/16/network_attack_of_blockchain_other_attack/ 写在前面的话 自比特 ...
- [原创]浅谈在创业公司对PMF的理解
[原创]浅谈在创业公司对PMF的理解 在创业时,大多数人都常谈一个词叫"MVP",但PMF谈的比较少,PMF在创业公司尤为重要,以下谈谈个人一些看法. 1.什么是PMF? 创业公司 ...
- 浅谈对java编程思想的理解
浅谈对java编程思想的理解 刚从学校毕业的时候,对于这种概念的理解少之又少 ,只是单纯的从事编码工作,理解也只是停留在对java基本概念的使用上,很局限!随后工作了快三年的时间里,自己不断的理解这种 ...
- 浅谈对IT架构师的理解
写此文章来源于到新公司的感触,我在新单位任职解决方案架构师职位,到了新公司碰到新同事大多以一种"异样"的眼光看着我,或者发出一些声音,比如:"哇,架构师啊..." ...
- 浅谈javascript的原型和原型链(新手懵懂想学会原型链?看这篇文章就足够啦!!!)
最新文章
- uber_这就是我本可以免费骑Uber的方式
- 阿里云服务器安装Ubuntu图形化界面
- 防火墙/IDS测试工具Ftester
- linux deepin是基于linux mint修改
- 开发Java系统程序员要注意的基本知识
- 笔记-高项案例题-2019年下-计算题
- Codevs 3134 Circle
- mysql b-a全局索引_MySQL中B+树索引的使用
- Linux的openssl的安装
- P4240-毒瘤之神的考验【莫比乌斯反演,平衡规划】
- TensorFlow实现单隐层神经网络
- RAID 的各种方案
- RAKsmart:Linux SSH 客户端断开后保持进程继续运行配置方法
- 定制linux 安装光盘
- java拼音字符串的顺序,Java字符串按照汉语拼音排序
- 中国移动物联网开放平台OneNET学习笔记(1)——设备接入(MQTT协议)OneNET Studio篇
- type="button" ,"submit" 的区别
- 一个正经的前端学习 开源 仓库(阶段十四)
- eprint自定义打印工具
- Web寻梦狮ionic1实战1-环境搭建及项目介绍