将一下 prototype 是什么东西,原型链的理解,什么时候用 prototype

在JavaScript中,prototype对象是实现面向对象的一个重要机制。
  每个函数就是一个对象(Function),函数对象都有一个子对象 prototype对象,类是以函数的形式来定义的。prototype表示该函数的原型,也表示一个类的成员的集合。
 
要弄清楚原型链就要先弄清楚 function 类型,在JavaScript中没有类的概念,都是函数,所以它是一门函数式的编程语言。类有一个很重要的特性,就是它可以根据它的构造函数来创建以它为模板的对象。在javascript中,函数就有2个功能
第一、 作为一般函数调用
第二、 作为它原型对象的构造函数 也就new()
 
凡是通过 new Function() 创建的对象都是函数对象,其他的都是普通对象
JS在创建对象(不论是普通对象还是函数对象)的时候,都有一个叫做__proto__的内置属性,用于指向创建它的函数对象的原型对象prototype。
1.原型和原型链是JS实现继承的一种模型。
2.原型链的形成是真正是靠__proto__ 而非prototype
将方法定义到构造方法的prototype上,这样的好处是,通过该构造函数生成的实例所拥有的方法都是指向一个函数的索引,这样可以节省内存。
原文地址:https://www.cnblogs.com/queende7/p/8668856.html