JavaScript面向对象特性实践一

JavaScript面向对象特性实践一

javaScript 在构造类的时候有好几种方法,每种方法特点是不一样的。

1.构造/原型法

 

     var   BankCard = function (cardId,cardPassword) {
         
this.cardId=cardId;  //银行卡NO
         this.cardPassword=cardPassword;// 银行卡密码
         this.balance=100//银行卡余额
}

    BankCard.prototype
= {
          queryBalance:
function(){
            
return this.balance;
                        }
,
            setBalance:
function(value){
             
this.balance=this.balance+value;
                         }
,
           setPassword:
function(password){
              
this.cardPassword=password;
                         }

   }


 
function    invoke(fun,value) {
       fun.setBalance(value);
       balance
=fun.queryBalance();
       alert(balance);
    }

// 实例化一个银行卡对象
      var   objBankCard = new  BankCard( ' admin ' , ' admin ' );
// 传递对象引用,调用对象成员方法
      invoke(objBankCard, 200 );


// -->

 

2.工厂方式 

 

function  BankCard(cardId,cardPassword,balance) {
      
var objBankCard=new Object();
      objBankCard.cardId
=cardId;
      objBankCard.cardPassword
=cardPassword;
      objBankCard.balance
=balance;
      objBankCard.queryBalance
=function(){
          
return this.balance;
      }
;
      objBankCard.setBalance
=function(value){
          
this.balance=this.balance+value;
      }
;
      objBankCard.setPassword
=function(password){
          
this.cardPassword=password;
      }
;


      
return objBankCard;
}

     
var  obj = new  BankCard( " admin " , " admin " , 100 );
     alert(obj.queryBalance());

3.构造函数方式

 

function  BankCard(cardId,cardPassword,balance) {
    
      
this.cardId=cardId;
      
this.cardPassword=cardPassword;
      
this.balance=balance;
      
this.queryBalance=function(){
          
return this.balance;
      }
;
      
this.setBalance=function(value){
          
this.balance=this.balance+value;
      }
;
      
this.setPassword=function(password){
          
this.cardPassword=password;
      }
;

}

     
var  obj = new  BankCard( " admin " , " admin " , 100 );
     alert(obj.queryBalance());

 

4.原型方式

 

// 原型方式
    function  BankCard() {

   }

   BankCard.prototype.carId
= " admin " ;
   BankCard.prototype.cardPassword
= " admin " ;
   BankCard.prototype.balance
= 100 ;
   BankCard.prototype.queryBalance 
=   function () {
               
return this.balance;
                        }
;
        
    BankCard.prototype.setBalance 
=   function (value) {
          
this.balance=this.balance+value;
      }
;
    BankCard.prototype.setPassword 
=   function (password) {
          
this.cardPassword=password;
      }
;
     
var  obj = new  BankCard();
     alert(obj.queryBalance());

 

  在日常的工作当中,推荐大家是由"构造/原型"法或"原型"法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值