原型是什么:
原型是函数的prototype属性
原型有什么:
默认的prototype属性上有constructor属性,这个constructor属性的值是原本的这个函数,也就是说constructor指向构造函数本身。
原型干什么:
可以给prototype对象里添加一些自定义属性和方法;就是常说的把方法和属性挂载在原型上,这样实例对象便可以使用原型上的方法和属性了。
原型链是什么:
可以看成是一条链条,链条每一节之间有一个连接点,那原型链的连接点是一个叫__proto__的东西,这个东西是实例对象的一个属性,通过__proto__可以指向构造函数的prototype属性,可以叫他隐式原型
实例的__proto__和构造函数的prototype指向的是同一块内存
原型链的作用:
查找一个对象属性,他的顺序?
首先会在自身上面找,有的话,就到此为止;自身没有就到原型上找,直到找到顶层的object,他的Object prototype如果没有,返回undefined,这样的查找顺序就是原型链。按照原型链查找属性这一特点,我们可以实现一个继承。