将方法绑定到另一种方法

时间:2017-02-14 23:04:46

标签: javascript

对象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.

1 个答案:

答案 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);