对象A包含对象B的实例。
当用户单击div时,它将调用一个方法并为Object B传递一个参数,但是我们需要Object B能够调用一个方法并在Object A上传递一个参数,因为它必须更新相应的东西。它。
我们不希望必须将实例化的Object A传递给Object B的构造函数。
从对象A中,我希望定义:
this.objectB = new ObjectB();
ObjectA.handleUserSelection += this.objectB.handleDateTimeSelection;
在ObjectA中,该方法如下所示:
ObjectA.prototype.handleUserSelection(data)
{
//do something else with the data
}
因此,当用户单击绑定到它的div时调用objectB.handleDateTimeSelection时,它也会触发相应的objectA方法。
解释2)
当调用对象B的方法时,我想调用对象A上的方法,但我不想将整个对象A引用传递给对象B.对象A知道对象B,但是对象B根本不知道对象A.
答案 0 :(得分: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);