2011-02-14 10 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(); 
     } 
    } 
}); 

をそれらの関数を作ることができます何かを初期化する必要はなく、必要に応じて関数を使用することもできます。あなたが公共の静的メソッドを使用することができない場合は、上記の方法を兼ね備えているが

あるいは、あなたは、あなたが実際に私たちを示していない限り私たちはあなたを助けることができない

関連する問題