首先,JS的继承是用原型链实现的,和传统java里拷贝属性和方法到子类里不一样。
1. 原型
原型呢,他其实就是一个对象,目的是为了让实例共享属性和方法,毕竟实例之间是有共性的。
2. 原型链
当我们查找一个对象的属性或者方法的时候,如果本身没有,则会去原型对象查找,如果还没有,则去原型对象的原型对象,
如此直到找到或者返回undefined;这是一个链式的查找,每个对象都有一个它自身原型对象的链接,这些链接组成的整个链条
就是原型链;
3. __proto__
和prototype
前者在浏览器中存在; new 一个函数创建出来的对象,这个对象的__proto__指向函数的prototype属性