JavaScript面向对象特性实践一

本文介绍JavaScript中实现面向对象编程的四种方法:构造/原型法、工厂方式、构造函数方式及原型方式,并通过创建银行卡类的例子进行说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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、付费专栏及课程。

余额充值