JavaScript面向对象特性实践一

来源:互联网 发布:华硕黄静 知乎 编辑:程序博客网 时间:2024/06/05 17:12

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

 

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

原创粉丝点击