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

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

转载于:https://www.cnblogs.com/yipeng-yu/archive/2011/11/29/2268387.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值