构造函数 实例对象 原型对象三者之间的关系以及修改原型后产生的影响

1.要明白这三者的关系 首先要明白这三者都是什么 是怎么来的

构造函数:构造函数和普通函数并没有什么实质性的区别,都是函数;

原型对象:每个构造函数在声明的时候,系统会自动在内存中生成一个空对象,这个对象就是 原型对象

实例对象:构造函数通过new 方法 就会得到一个实例对象,new的过程分为5个步骤:

1:创建空对象

2:将这个空对象的原型,指向构造函数的prototype属性

3:将构造函数中的this指向当前的空对象

4:为空对象添加属性和值

5:返回对象的地址

 

2.知道怎么来的,然后介绍着三者关系

构造函数是根据具体的事物抽象出来的抽象模板

实例对象是根据抽象的构造函数模板得到的具体实例对象

实例对象由构造函数而来,一个构造函数可以生成很多具体的实例对象,而每个实例对象都是独一无二的;

每个构造函数都有一个属性prototype,这个属性就指向他的原型对象,

每个对象都有一个constructor属性,该属性指向创建该实例的构造函数(null没有自己的原型对象。 )

每个实例对象都有一个__proto__ 属性,这个属性指向原型对象。

三者之间的关系如图:

 

当我们手动修改构造函数的默认原型时,关系如下:

猜你喜欢

转载自www.cnblogs.com/ruoruchujian/p/10909099.html