什么是原型对象? 

每一个构造函数都有一个prototype的属性,这个属性的值是一个对象,这个对象叫做构造函数

一般建议将构造函数的成员属性绑定在原型对象prototype上,因为原型对象prototype身上的属性默认可以通过实例对象访问到

这样做可以保证每次通过new关键字创建实例对象的时候这些方法不会被重复在内存中创建

什么是原型链?

每个构造函数都有一个prototype属性,即原型对象,通过实例对象的__proto__属性可以访问原型对象

而原型对象本质也是一个对象,是对象就有自己的原型对象,最终形成链状的结构称为原型链

什么是构造函数?

构造函数本身也是一个函数,只不过这个函数在定义的时候首字母需要大写,构造函数调用的时候,必须通过new关键字来调用,我们一般不直接使用构造函数,而是使用构造函数创建出来的实例对象,构造函数是js面向对象的一个重要组成部分