JavaScript面向對象特性實踐一
javaScript 在構造類的時候有好幾種方法,每種方法特點是不一樣的。
1.構造/原型法
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.工廠方式
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.構造函數方式
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());
在日常的工作當中,推薦大家是由"構造/原型"法或"原型"法。