简单理解JavaScript原型链

时间:2019-05-07 16:42:58   收藏:0   阅读:102

简单理解原型链

我是这样理解的:每一个JavaScript对象在创建的时候就会与之关联另外一个特殊的对象,这个对象就是我们常说的原型对象,每一个对象都会从原型“继承”属性和方法。

一个由有限个原型对象组成的用来实现继承和共享属性的对象链。

打个通俗的比方,可以把原型链理解成一个家族的血亲关系,每一个后代都会从父代身上继承该家族特有的基因和特征。

关于原型的继承,我们常说每一个对象都会从原型上"继承"属性,实际上,此"继承"并非意味着简单的复制,而是一个可访问的通道,引用《你不知道的JavaScript》中的一句话:

继承意味着复制操作,然而JavaScript默认并不会复制对象的属性,相反,JavaScript只是在两个对象之间创建一个关联,这样,一个对象就可以通过委托访问另一个对象的属性和函数,所以与其说是继承,委托的说法反而更加准确。

三个概念

prototype

_proto_

constructor

对象的原型链

Object

Function

Array

Person

技术分享图片

核心

  1. 原型链顶端是Object.prototype

  2. JavaScript原生对象(Object、Function、Array等)都是Function的实例,它们的__proto__均指向Function.prototype

  3. 除了Object,所有原生对象(构造函数)的prototype,均继承自Object.prototype

  4. JavaScript数据结构

    JavaScript数据结构和原型链之间的关系如下图:

技术分享图片

原文:https://www.cnblogs.com/axinmir/p/10826095.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!