js原型链梳理:实例对象、构造函数、原型对象

46 阅读1分钟

三个基本概念:

  1. 实例对象 person
  2. 构造函数 Person 或 person.constructor
  3. 原型对象 person._proto_ 或 Person.prototype

一般情况下,如图中,需要分清楚这三种对象对应三个实例对象。但考虑继承的话,则一个对象可能属于多个概念,例如:

  1. Person既是一个Function的实例对象,也是一个构造函数。
  2. 任意一个实例对象都可以成为原型对象。如图中Student未实现继承Person时,Student.__proto__是Object的实例对象obj

实现继承是通过对原型对象进行操作实现的。
原型链指的是由obj.__proto__或Object.getPrototypeOf(obj)得到的对象所组成的链

image.png

图上箭头->代表原型链
每一个对象都有原型:每一个实例对象都有其原型对象,如图所有实例对象都在原型链上