首先,JS的继承是用原型链实现的,和传统java里拷贝属性和方法到子类里不一样。
1. 原型
原型呢,他其实就是一个对象,目的是为了让实例共享属性和方法,毕竟实例之间是有共性的。
2. 原型链
当我们查找一个对象的属性或者方法的时候,如果本身没有,则会去原型对象查找,如果还没有,则去原型对象的原型对象,如此直到找到或者返回
undefined;这是一个链式的查找,每个对象都有一个它自身原型对象的链接,这些链接组成的整个链条就是原型链;
3. __proto__
和prototype
前者在浏览器中存在; new 一个函数创建出来的对象,这个对象的__proto__指向函数的prototype属性
4.其他
对于JavaScript中的内置对象,如String、Number、Array、Object、Function等,因为他们是native代码实现的,
他们的原型打印出来都是ƒ () { [native code] }
。
参考:https://segmentfault.com/a/1190000010817337
原文:https://www.cnblogs.com/ljyqd/p/11507581.html