将方法定义在prototype上的好处

通常js类定义和使用的是这样的:

    var Class=function(){};
    Class.prototype.sharedFn=function(){}; 
    var instanceA=new Class();  var instanceB=new Class();  

好处是这样的: 实例A 和 实例B 都继承了sharedFn成员,并且是同一份,节省内存了空间

why?###

个人理解:

  1. 每个js函数都有一个prototype属性(prototype上会有个constructor属性指向构造函数)
  2. 每个js对象都持有原型对象(简称原型)
  3. 通过new操作符创建的对象使用构造函数的prototype原型对象作为自身的原型属性(内置属性)

ps:定义类的步骤

  1. 声明一个函数作为构造函数
  2. 在函数的prototype属性上设置实例的共享方法(prototype将共享为所有实例对象的原型属性
原文地址:https://www.cnblogs.com/mushishi/p/5814611.html