2011-09-28 18 views
0

我有這樣定義的JavaScript類:與單上負載運行自動方法JavaScript類

myClass = { 
    var1:0, 
    var2:0, 
    initVars: function() {}, 
    method1: function() {}, 
    method2: function() {} 
} 

現在,這個類在負載瞬間實例化。 (我相信),而且這個班級只有一個例子。

現在我們可以說我想要一個函數,myClass.initVars()在類準備好後立即運行,這可能嗎?因爲目前我已經在這個類下定義類的地方

myClass.initVars(); 

因此,當這個類完成定義之後,它就會移到下一個命令上。

但是我可能會刪除類的定義下面的這一行,並讓它自動運行?

+1

JavaScript沒有 「類」。你只需定義一個對象。不,沒有其他辦法。您可以立即調用'initVars'並從該方法返回對象並將其分配給'myClass'。 –

+0

javascript可能沒有class關鍵字按照定義,但我堅決不贊同Javascript沒有「classes」的聲明。一個類的定義是「一個類是一個被用作創建自身實例的藍圖的構造」,並且看作爲Javascript「對象」滿足條件。我會說,JavaScript確實有「類」。除了意見,謝謝你的回答 –

+0

是的,我想你可以爭論定義。採取的點。但無論如何,你直接創建一個對象,而不是構造函數。 –

回答

1

這應該做你想做的。在自動執行的函數中創建對象,並調用其中的initVars方法,然後返回新創建和初始化的對象。

myClass = (function(){ 
    var that = { 
     var1:0, 
     var2:0, 
     initVars: function() {}, 
     method1: function() {}, 
     method2: function() {} 
    }; 
    that.initVars(); 
    return that; 
})(); 

http://jsfiddle.net/CQ29F/