js的原型链简单理解
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的原型链简单理解相关推荐
- 怎么理解js的原型链继承?
前言 了解java等面向对象语言的童鞋应该知道.面向对象的三大特性就是:封装,继承,多态. 今天,我们就来聊一聊继承.但是,注意,我们现在说的是js的继承. 在js的es6语法出来之前,我们想实现js ...
- 【Day03】使用原型最大的好处及原型链的理解
面试题 使用原型最大的好处,原型链的理解 题解 原型优缺点简单分析 通过原型链继承的方式,原先存在父类型的实例中的所有属性和方法,现在也能存在于子类型的原型中了: 在通过原型链实现继承时,原型实际上会 ...
- 原型链的理解(全面)
创建一个实例 使用构造函数创建一个实例 function Star(age,name) {this.age = agethis.name = namethis.sing = function(){co ...
- JS 中原型和原型链深入理解
作者: erdu segmentfault.com/a/1190000014717972 首先要搞明白几个概念: 函数(function) 函数对象(function object) 本地对象(nat ...
- JS原型、原型链深入理解
原型是JavaScript中一个比较难理解的概念,原型相关的属性也比较多,对象有"prototype"属性,函数对象有"prototype"属性,原型对象有&q ...
- js原型和原型链_理解JS中的原型和原型链
导读:JavaScript中(JS)的原型和原型链是web前端开发面试中经常被问到的问题:同时,如果我们能很好的理解JS中的原型和原型链,对于控制台输出的很多信息我们也能更好的理解,而原型链也是实现继 ...
- 对js原型和原型链的理解
学习到 JavaScript 原型这个地方的时候,最开始是比较懵的状态,今天早上起来看了下红宝书中对于原型的解释,慢慢的也就有了些了解,但是解释的比较官方.接下来,我会把自己的理解分享下来,尽量用通俗 ...
- js原型和原型链的理解
prototype 每个函数都有一个prototype属性,函数的prototype属性是在定义函数时解析器自动添加的,对应着一个对象,这个对象就是我们所谓的原型对象.它默认指向一个object空对象 ...
- js原型和原型链的理解(透彻)
1,原型 function Fn() {} 1)Fn是一个构造函数,每个构造函数都会自动生成一个prototype属性,指向一个空对象,这个空对象就是原型.每一个实例对象都会从原型继承属性和方法. 2 ...
最新文章
- 杨元庆:兔子要变成狼靠的是体制的激励
- ios开发-系统架构
- 线程间操作无效: 从不是创建控件“progressBar1”的线程访问它。
- 2007年浙江大学计算机及软件工程研究生机试真题
- 解决问题的策略-分而治之
- 安卓手机突然很卡_你的安卓手机越来越卡?教你4招轻松解决问题!
- mybatis初始化mysql_SimpleMybatisMysql
- java doprivileged_【转】关于AccessController.doPrivileged
- 你被限流了吗?| 图解+代码
- SI24R1引脚及软硬件中文开发资料
- 用python给表格加边框_python如何设置表格边框
- python查看保留字_Python 关键字(保留字)一览表,含查询方法
- python输入负数_如何让python使用负数
- win10如何退出微软账户
- U盘数据损坏了不要慌,这两种方法可以轻松找回数据
- cout和cin后面跟指针的问题
- 关于微星主板官网下载网卡驱动后,网络适配器消失的问题
- 6_3.信道与信道容量
- 第一次去中关村图书大厦
- VR/AR电力培训解决方案
热门文章
- 【VerySky原创】RPR_ABAP_SOURCE_SCAN
- Python|分分分找数据
- jenkins 配置 Gitee API免密令牌 测试一直ERROR(踩坑处理)
- 两款识图神器,你这个图我认识!
- 采购竞价你需要牢记的要点
- D. Tokitsukaze, CSL and Stone Game(博弈)
- react+propTypes
- 站在巨人的肩膀上-像kubernetes一样用etcd存储自定义对象
- think php curd,Think PHP CURD
- onmousedown和onmouseup事件