首先 这三者是什么要搞清楚
构造函数他是一种特殊的函数,主要用来初始化对象的,就是对对象成员赋值属性,他总与new一起使用。我们可以把对象中一些共有的属性和方法抽取出来,然后封装到这个函数中去,在开发阶段来说 构造函数里面只存放的属性,方法是存放到原型对象里面的。其中里面有一个属性为prototype 这个属性是指向原型对象的; 怎么判断是否为构造函数呢 就是在调用函数的时候用了 new 运算符来调用的函数 就是构造函数了
这里有一个知识点 就是在 new 的过程中发生了什么 1 在内存中创建一个新的空对象 2 让this指向这个新的对象。
是通过调用构造函数产生的 有一个内部属性proto 属性来指向原型对象的;
他其实就是一个构造函数的一个属性,用来存放方法的 ,这个属性也是一个对象 我们也称为 prototype 为 原型对象;他的作用是为了共享方法的 ,从而节省内存;其中里面也有一个属性是指向构造函数的constructor
对象原型也是一个属性proto 构造函数、原型对象都会有一个proto属性 他是指向原型对象的 之所以我们对象可以使用构造函数里面的属性和方法 都是因为这个属性
每一个对象都有一原型对象,原型对象本身也是一个对象,及原型对象也有自己的原型对象,这样就行形成了一个链式结构,就叫做原型链
直到返回值为null 就会停止
原文:https://www.cnblogs.com/lwa1999/p/11642551.html