静态方法、对象方法和原型方法
- 静态方法,通过function的函数名直接调用
- 对象方法,通过function的实例化对象调用
- 原型方法,通过对象原型复制实例化对象所得的方法,它不覆盖原有对象同名方法
function ClassName1(parameter,...){
this.myMethod1=functon(){...}
}
function ClassName2(parameter,...){
this.myMethod1=function(){...}
this.myMethod2=function(){...}
}
ClassName1.classMethod=function(){...}
ClassName1.classMethod();
ClassName1.myMethod1(); //类不可以调用对象方法
var objClassName1=new ClassName1();
objClassName1.myMethod1();
objClassName1.classMethod(); //对象不可以调用静态方法
objClassName1.prototype=new ClassName2(); //对象原型复制对象, 与类原型复制对象是不同的
objClassName1.prototype.myMethod1(); //这就是原型方法
objClassName1.prototype.myMethod2(); //这就是原型方法
objClassName1.myMethod1(); //自身对象方法仍然可以调用, 如果想 objClassName1.myMethod2();
//则必须通过类原型复制对象 ClassName1.prototype=new ClassName2();
//所有 ClassName1的实例化对象,都共享ClassName2的属性和方法
//否则不可以这样使用 objClassName1.myMethod2();
ClassName1.prototype.myMethod3=function(){...} //通过类原型增加对象方法, 这对所有实例化对象共享的,
//但对象会优先查找自身同名方法, 如果存在则不使用原型方法
objClassName1.myMethod3();
var objClassName11=new ClassName1(); //再实例化对象
objClassName11.myMethod3(); //同样共享对象方法