原型和原型链

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

对于普通对象来说,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构造的

posted @ 2020-01-13 22:53  平凡人的普通修仙之路  阅读(174)  评论(0编辑  收藏  举报