| 導購 | 订阅 | 在线投稿
分享
 
 
 

javascript定義類和實例化類

來源:互聯網  2008-09-05 07:10:38  評論

在Javascript中,一切都是對象,包括函數。在Javascript中並沒有真正的類,不能像C#,PHP等語言中用 class xxx來定義。但Javascript中提供了一種折中的方案:把對象定義描述爲對象的配方(先看一下例子會比較容易理解)。

定義類的方法有很多種,這裏有兩中較爲通用的方法,大家參考一下。

這兩種方法均可以解決構造函數會重複生成函數,爲每個對象都創建獨立版本的函數的問題。

解決了重複初始化函數和函數共享的問題。

1、混合的構造函數/原型方式

//混合的構造函數/原型方式

//創建對象

function Card(sID,ourName){

this.ID = sID;

this.OurName = ourName;

this.Balance = 0;

}

Card.prototype.SaveMoney = function(money){

this.Balance += money;

};

Card.prototype.ShowBalance = function(){

alert(this.Balance);

};

//使用對象

var cardAA = new Card(1000,'james');

var cardBB = new Card(1001,'sun');

cardAA.SaveMoney(30);

cardBB.SaveMoney(80);

cardAA.ShowBalance();

cardBB.ShowBalance();

2、動態原型方法

//動態原型方法

//創建對象

function Card(sID,ourName){

this.ID = sID;

this.OurName = ourName;

this.Balance = 0;

if(typeof Card._initialized == "undefined"){

Card.prototype.SaveMoney = function(money){

this.Balance += money;

};

Card.prototype.ShowBalance = function(){

alert(this.Balance);

};

Card._initialized = true;

}

}

//使用對象

var cardAA = new Card(1000,'james');

var cardBB = new Card(1001,'sun');

cardAA.SaveMoney(30);

cardBB.SaveMoney(80);

cardAA.ShowBalance();

cardBB.ShowBalance();

在Javascript中,一切都是對象,包括函數。在Javascript中並沒有真正的類,不能像C#,PHP等語言中用 class xxx來定義。但Javascript中提供了一種折中的方案:把對象定義描述爲對象的配方(先看一下例子會比較容易理解)。 定義類的方法有很多種,這裏有兩中較爲通用的方法,大家參考一下。 這兩種方法均可以解決構造函數會重複生成函數,爲每個對象都創建獨立版本的函數的問題。 解決了重複初始化函數和函數共享的問題。 1、混合的構造函數/原型方式 //混合的構造函數/原型方式 //創建對象 function Card(sID,ourName){ this.ID = sID; this.OurName = ourName; this.Balance = 0; } Card.prototype.SaveMoney = function(money){ this.Balance += money; }; Card.prototype.ShowBalance = function(){ alert(this.Balance); }; //使用對象 var cardAA = new Card(1000,'james'); var cardBB = new Card(1001,'sun'); cardAA.SaveMoney(30); cardBB.SaveMoney(80); cardAA.ShowBalance(); cardBB.ShowBalance(); 2、動態原型方法 //動態原型方法 //創建對象 function Card(sID,ourName){ this.ID = sID; this.OurName = ourName; this.Balance = 0; if(typeof Card._initialized == "undefined"){ Card.prototype.SaveMoney = function(money){ this.Balance += money; }; Card.prototype.ShowBalance = function(){ alert(this.Balance); }; Card._initialized = true; } } //使用對象 var cardAA = new Card(1000,'james'); var cardBB = new Card(1001,'sun'); cardAA.SaveMoney(30); cardBB.SaveMoney(80); cardAA.ShowBalance(); cardBB.ShowBalance();
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有