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());

 

  在日常的工作當中,推薦大家是由"構造/原型"法或"原型"法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章