2011-02-14 90 views
0

我有一個創建自定義選擇框的類。它的工作正常,我希望這個類更通用。 這些選擇框也有「onchange」事件監聽器。在javascript中刪除類依賴關係

現在在調用onchange方法之前,我想進行一些複雜的測試。而這些測試在另一個類中定義。

爲了實現通用性,我不希望我必須初始化SelectBox類中的新類。 什麼應該是解決這個問題的最好方法?並且執行測試所需的數據在SelectBox類中。

感謝

+0

我們幫不了你,除非你確實告訴我們代碼 - 簡單地描述它通常在這種情況下不夠具體。 –

回答

0

那麼,如果這些功能不依賴於新的初始化對象特定變量,那麼你可以讓這些功能集成到公共靜態的

var AnotherClass = (function(){ 
    // this is a public static method 
    this.complexTask = function(){ alert('I am too complex for my shirt'); } 

    return function(){ 
    // initialization-dependent-stuff 
    } 
})(); 

var SelectBoxes = (function(){ 
    return function(){ 
     this.onChange = function(){ 
     AnotherClass.complexTask(); 
     } 
    } 
}); 

做這個,你不必初始化任何東西,再加上你可以按你想要的方式使用你的函數。

另外,如果您不能使用的public static方法,那麼你應該考慮通過該類作爲參數的情況下,雖然上述方法是較受歡迎的