通常js类定义和使用的是这样的:
var Class=function(){};
Class.prototype.sharedFn=function(){};
var instanceA=new Class(); var instanceB=new Class();
好处是这样的: 实例A 和 实例B 都继承了sharedFn成员,并且是同一份,节省内存了空间
why?###
个人理解:
- 每个js函数都有一个prototype属性(prototype上会有个constructor属性指向构造函数)
- 每个js对象都持有原型对象(简称原型)
- 通过
new
操作符创建的对象使用构造函数的prototype
原型对象作为自身的原型属性(内置属性)
ps:定义类的步骤
- 声明一个函数作为构造函数
- 在函数的
prototype
属性上设置实例的共享方法(prototype将共享为所有实例对象的原型属性