2017-02-14 4 views
-3

オブジェクトAがオブジェクトBのBindメソッドユーザは、それがメソッドを呼び出してオブジェクトBの引数を渡す、しかし、我々が呼び出すことができるようにオブジェクトBが必要になりDIVをクリックすると

のインスタンスを含みますObject Aのメソッドを渡して引数を渡します。オブジェクトAはそれに対応するものを更新する必要があります。

私たちは、オブジェクトAの中からオブジェクトB.

のコンストラクタにインスタンス化オブジェクトAに合格する必要がありますする必要はありません、私は定義するために期待していた:ObjectAに内

this.objectB = new ObjectB(); 
    ObjectA.handleUserSelection += this.objectB.handleDateTimeSelection; 

方法次のようになります。objectB.handleDateTimeSelectionは、ユーザーがそれにバインドされたdiv要素をクリックしたときから呼び出されたときに

ObjectA.prototype.handleUserSelection(data) 
    { 
    //do something else with the data 
    } 

だから、それはまた、それぞれをObjectAをトリガーします方法。

は解説2)

オブジェクトBのメソッドが呼び出されると、私はオブジェクトAのメソッドを呼び出したいが、私は全体のオブジェクトにオブジェクトB.オブジェクトAへの参照を渡すためにしたくないが認識していますオブジェクトBですが、オブジェクトBはオブジェクトAをまったく認識していません。

+0

ご迷惑をおかけして申し訳ございませんが、ご迷惑をおかけして申し訳ございません。 – zozo

+0

ObjectB.handleDateTimeSelectionを呼び出した後、ObjectAでいくつかの関数を実行することを目標とする場合、ObjectBはObjectAのメソッドへの参照を必要とします。 this.objectB.handleDateTimeSelection(ObjectA.prototype.handleUserSeleection);次に、this.objectB.handleDateTimeSelectionの本体の内部で、必要なパラメータで渡された関数を呼び出すことができます。 – databyss

+0

ここで何が問題なのかは本当に不明です。 "私は定義することを望んでいた:"問題ではない、それは要件です。 – Claies

答えて

0

メソッドをパラメータとして関数に渡すことができます。

// ObjectA method definition 
ObjectA.prototype.someMethod(data) { 
// do something with the data 
} 

// ObjectB method definition 
ObjectB.prototype.handleDateTimeSelection(inputMethod) { 
    // Do object B stuff 

    // execute callback 
    inputMethod(someData); 
} 

// Calling it 
this.objectB.handleDateTimeSelection(ObjectA.prototype.someMethod); 

// or something existing 
this.objectB.handleDateTimeSelection(alert); 
+0

handleDateTimeSelectionはdivのclickイベントで検出され、クリックされた要素を受け取ります。 Obect Aメソッドにもその要素をクリックして送信したいが、オブジェクトbは無視する – Illuminati

関連する問題