原型和原型链

Posted sna-ling

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原型和原型链相关的知识,希望对你有一定的参考价值。

一、原型分为两种,直接原型和间接原型。

对于普通对象来说,Object.prototype是直接原型。

对于函数和数组来说,Object.prototype是间接原型。

1.每个对象都有原型,原型里存放着对象的共有属性。

2.对象的原型也是对象。

3.对象的原型也有原型。

Object.prototype保存了一个对象的地址,这个对象包含了所有普通对象的共有属性,

叫做对象的原型。

Array.prototype保存了一个对象的地址,这个对象包含了所有数组的共有属性,叫做对象的原型。

Function.prototype保存了一个对象的地址,这个对象包含了所有函数的共有属性,叫做对象的原型。

 

原型链:javascript中所有的对象都是由它的原型对象继承而来的,而原型对象自身也是一个对象,它也有自己的原型对象,这样层层上溯,就形成了一个类似链表的结构,这就是原型链。

所有原型链的终点都是Object函数的prototype属性,因为在JavaScript中的对象都默认由Object()构造。Object.prototype指向的原型对象同样拥有原型,不过他的原型是null,而null没有原型。

所以查找属性的时候查到了Object.prototype就可以停止查找了。

重点知识:

1.JS公式

2.对象.proto ===其构造函数.prototype

1.根公理

object.prototype是所有对象的(直接或间接)原型

1.函数公理

2.所有函数都是由Function构造的

以上是关于原型和原型链的主要内容,如果未能解决你的问题,请参考以下文章

js原型链和继承的理解

web前端:理解js原型链

原型和原型链的理解

彻底理解js的原型链

javascript原型,原型链 有啥特点

面试:原型链