静态方法、对象方法和原型方法

  1. 静态方法,通过function的函数名直接调用
  2. 对象方法,通过function的实例化对象调用
  3. 原型方法,通过对象原型复制实例化对象所得的方法,它不覆盖原有对象同名方法

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();                                 //同样共享对象方法

posted @ 2011-11-29 22:50  Yu  阅读(1062)  评论(0编辑  收藏  举报