js的原型链

首先,在将js的原型链之前我们先来说一下什么是原型,当我们生成一个普通对象x的时候,这个x会有一个隐藏属性x._proto_,这个属性会指向Object.prototype也就是

x.__proto__ === Object.prototype

这个时候我们就说x的原型是Object.prototype,这个x.__proto__唯一的作用就是用来指向它的原型。

那么什么是原型链呢,举个例子,当我们有一个数组对象a=[]时,这个时候a.__proto__就指向了Array.prototype,但是Array.__proto__又指向了Object.prototype,

a.__proto__ === Array.prototype
Array.__proto__ === Object.prototype

由此我们可以看出通过__proto__这个属性的连接,我们形成了一个原型链。

那么要怎样改变x的原型链呢,下面有两个方法

const x = Object.creat(原型)
//或者是
const x = new 构造函数()//x.__proto__ === 构造函数.prototype

原型链解决了在没有 class 的情况下的实现了继承,以上面的 a 为例,a是 Array 的实例,所以 a 拥有 Array.prototype 里面的属性,而 Array 是继承 Object 的,也就是说 a 是 Object 的间接实例,所以 a 也拥Object.prototype 里面的属性。

js的原型链简单理解相关推荐

  1. 怎么理解js的原型链继承?

    前言 了解java等面向对象语言的童鞋应该知道.面向对象的三大特性就是:封装,继承,多态. 今天,我们就来聊一聊继承.但是,注意,我们现在说的是js的继承. 在js的es6语法出来之前,我们想实现js ...

  2. 【Day03】使用原型最大的好处及原型链的理解

    面试题 使用原型最大的好处,原型链的理解 题解 原型优缺点简单分析 通过原型链继承的方式,原先存在父类型的实例中的所有属性和方法,现在也能存在于子类型的原型中了: 在通过原型链实现继承时,原型实际上会 ...

  3. 原型链的理解(全面)

    创建一个实例 使用构造函数创建一个实例 function Star(age,name) {this.age = agethis.name = namethis.sing = function(){co ...

  4. JS 中原型和原型链深入理解

    作者: erdu segmentfault.com/a/1190000014717972 首先要搞明白几个概念: 函数(function) 函数对象(function object) 本地对象(nat ...

  5. JS原型、原型链深入理解

    原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有"prototype"属性,函数对象有"prototype"属性,原型对象有&q ...

  6. js原型和原型链_理解JS中的原型和原型链

    导读:JavaScript中(JS)的原型和原型链是web前端开发面试中经常被问到的问题:同时,如果我们能很好的理解JS中的原型和原型链,对于控制台输出的很多信息我们也能更好的理解,而原型链也是实现继 ...

  7. 对js原型和原型链的理解

    学习到 JavaScript 原型这个地方的时候,最开始是比较懵的状态,今天早上起来看了下红宝书中对于原型的解释,慢慢的也就有了些了解,但是解释的比较官方.接下来,我会把自己的理解分享下来,尽量用通俗 ...

  8. js原型和原型链的理解

    prototype 每个函数都有一个prototype属性,函数的prototype属性是在定义函数时解析器自动添加的,对应着一个对象,这个对象就是我们所谓的原型对象.它默认指向一个object空对象 ...

  9. js原型和原型链的理解(透彻)

    1,原型 function Fn() {} 1)Fn是一个构造函数,每个构造函数都会自动生成一个prototype属性,指向一个空对象,这个空对象就是原型.每一个实例对象都会从原型继承属性和方法. 2 ...

最新文章

  1. 杨元庆:兔子要变成狼靠的是体制的激励
  2. ios开发-系统架构
  3. 线程间操作无效: 从不是创建控件“progressBar1”的线程访问它。
  4. 2007年浙江大学计算机及软件工程研究生机试真题
  5. 解决问题的策略-分而治之
  6. 安卓手机突然很卡_你的安卓手机越来越卡?教你4招轻松解决问题!
  7. mybatis初始化mysql_SimpleMybatisMysql
  8. java doprivileged_【转】关于AccessController.doPrivileged
  9. 你被限流了吗?| 图解+代码
  10. SI24R1引脚及软硬件中文开发资料
  11. 用python给表格加边框_python如何设置表格边框
  12. python查看保留字_Python 关键字(保留字)一览表,含查询方法
  13. python输入负数_如何让python使用负数
  14. win10如何退出微软账户
  15. U盘数据损坏了不要慌,这两种方法可以轻松找回数据
  16. cout和cin后面跟指针的问题
  17. 关于微星主板官网下载网卡驱动后,网络适配器消失的问题
  18. 6_3.信道与信道容量
  19. 第一次去中关村图书大厦
  20. VR/AR电力培训解决方案

热门文章

  1. 【VerySky原创】RPR_ABAP_SOURCE_SCAN
  2. Python|分分分找数据
  3. jenkins 配置 Gitee API免密令牌 测试一直ERROR(踩坑处理)
  4. 两款识图神器,你这个图我认识!
  5. 采购竞价你需要牢记的要点
  6. D. Tokitsukaze, CSL and Stone Game(博弈)
  7. react+propTypes
  8. 站在巨人的肩膀上-像kubernetes一样用etcd存储自定义对象
  9. think php curd,Think PHP CURD
  10. onmousedown和onmouseup事件