2012-07-03 34 views
0

我有一個JavaScript類,如下所示:我應該如何從html調用JavaScript類方法?

function Apple (type) { 
    this.type = type; 
    this.color = "red"; 
} 

Apple.prototype.getInfo = function() { 
    return this.color + ' ' + this.type + ' apple'; 
}; 

現在我想從一個事件我的html文件中調用方法是getinfo。說我有一個像下面這樣的div:

<div ... onmouseover="getinfo()"></div> 

現在我知道上面不是調用getinfo的正確方法。那麼最好的方法是什麼?

一種方法可能如下,我在windowonload()調用中定義一個類對象,並使用該對象調用方法getinfo()。但是如果我爲一個大項目和很多對象有很多類,該怎麼辦?然後我需要在windowonload()調用中定義每個對象,這對我來說看起來並不正確。必須有一種方法來即時創建對象。請引導我?

+1

它沒有任何意義,你需要有一個蘋果對象調用方法 – Esailija

+0

每個div應該有一個Apple對象與它關聯? – lbstr

回答

0

聲明你類:

function Apple (type) { 
    this.type = type; 
    this.color = "red"; 
} 

Apple.prototype.getInfo = function() { 
    return this.color + ' ' + this.type + ' apple'; 
}; 

創建它的一個實例:

var apple = new Apple("pink lady"); 

然後用它玩:

<div ... onmouseover="alert(apple.getInfo())"></div> 
+0

好的。我知道我需要定義調用該方法的對象。但是,如果我有很多課程。然後,對於每個班級,我需要事先定義一個對象,然後才能訪問它。沒有一種方法可以在html上動態創建對象嗎? – Ravi

+0

你可以,但我不明白你爲什麼會...

Sam

1

要叫你需要創建方法該對象的一個​​實例,例如:

new Apple('Granny Smith') 

你可以保持在一個變量的參照對象,並使用該變量調用方法:

var green = new Apple('Granny Smith'); 
var info = green.getinfo(); 

或者你可以直接對飛的對象,並調用方法:

var info = new Apple('Granny Smith').getinfo(); 

通常在頁面加載時創建對象的實例並在稍後使用時有意義。

+0

我明白你的觀點。現在我的問題是,我必須在頁面加載之前定義對象,或者有什麼方法可以在頁面加載後動態創建對象? – Ravi

+0

您可以隨時創建對象......我認爲您正在嘗試以圓滿的方式完成某件事情......也許您會得到更多幫助,提供更廣泛的問題定義並請求不同的建議 – Sam

+0

@ Ravi:你可以在任何時候創建對象,當你需要使用這個對象時,類代碼會被解析到正確的位置。您的示例類太抽象,不能說正常使用它,但通常在創建對象時有合理的時間。 – Guffa

相關問題