Javascript中两种最通用的定义类的方法

    在Javascript中,一切都是对象,包括函数。在Javascript中并没有真正的类,不能像C#,PHP等语言中用 class xxx来定义。但Javascript中提供了一种折中的方案:把对象定义描述为对象的配方(先看一下例子会比较容易理解)。

定义类的方法有很多种,这里有两中较为通用的方法,大家参考一下。

这两种方法均可以解决 构造函数会重复生成函数,为每个对象都创建独立版本的函数的问题。

解决了重复初始化函数和函数共享的问题。


1、混合的构造函数/原型方式
// 混合的构造函数/原型方式
//
创建对象
function  Card(sID,ourName){
    
this .ID  =  sID;
    
this .OurName  =  ourName;
    
this .Balance  =   0 ;
}

Card.prototype.SaveMoney 
=   function (money){
    
this .Balance  +=  money;
};

Card.prototype.ShowBalance 
=   function (){
    alert(
this .Balance);
};

// 使用对象
var  cardAA  =   new  Card( 1000 , ' james ' );
var  cardBB  =   new  Card( 1001 , ' sun ' );

cardAA.SaveMoney(
30 );
cardBB.SaveMoney(
80 );

cardAA.ShowBalance();
cardBB.ShowBalance();


2、动态原型方法

 

// 动态原型方法
//
创建对象
function  Card(sID,ourName){
    
this .ID  =  sID;
    
this .OurName  =  ourName;
    
this .Balance  =   0 ;
    
if ( typeof  Card._initialized  ==   " undefined " ){
        Card.prototype.SaveMoney 
=   function (money){
            
this .Balance  +=  money;
        };

        Card.prototype.ShowBalance 
=   function (){
            alert(
this .Balance);
        };
        Card._initialized 
=   true ;
    }
}

// 使用对象
var  cardAA  =   new  Card( 1000 , ' james ' );
var  cardBB  =   new  Card( 1001 , ' sun ' );


cardAA.SaveMoney(
30 );
cardBB.SaveMoney(
80 );

cardAA.ShowBalance();
cardBB.ShowBalance();

 

已被收录到:

http://extjs.org.cn/node/403

转载于:https://www.cnblogs.com/coolstr/archive/2008/09/01/1281340.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值