1.要明白这三者的关系 首先要明白这三者都是什么 是怎么来的
构造函数:构造函数和普通函数并没有什么实质性的区别,都是函数;
原型对象:每个构造函数在声明的时候,系统会自动在内存中生成一个空对象,这个对象就是 原型对象
实例对象:构造函数通过new 方法 就会得到一个实例对象,new的过程分为5个步骤:
1:创建空对象
2:将这个空对象的原型,指向构造函数的prototype
属性
3:将构造函数中的this指向当前的空对象
4:为空对象添加属性和值
5:返回对象的地址
2.知道怎么来的,然后介绍着三者关系
构造函数是根据具体的事物抽象出来的抽象模板
实例对象是根据抽象的构造函数模板得到的具体实例对象
实例对象由构造函数而来,一个构造函数可以生成很多具体的实例对象,而每个实例对象都是独一无二的;
每个构造函数都有一个属性prototype,这个属性就指向他的原型对象,
每个对象都有一个constructor属性,该属性指向创建该实例的构造函数(null没有自己的原型对象。 )
每个实例对象都有一个__proto__ 属性,这个属性指向原型对象。
三者之间的关系如图:
当我们手动修改构造函数的默认原型时,关系如下:
构造函数 实例对象 原型对象三者之间的关系以及修改原型后产生的影响
原文:https://www.cnblogs.com/ruoruchujian/p/10909099.html