在Underscore.compose中调用对象方法

时间:2014-12-29 07:16:13

标签: javascript underscore.js

使用Underscore _.compose方法,是否可以在合成中调用对象方法并将上下文设置为拥有所调用方法的对象?

example: function(data) {
  return _.compose(
    ObjectOne.methodName,
    ObjectTwo.methodName
  )(data);
}

执行ObjectOne.methodName()时,我希望thisObjectOne。但是,我在两个方法调用中都将Window作为上下文。

1 个答案:

答案 0 :(得分:2)

使用Function.prototype.bind,就像这样

example: function(data) {
  return _.compose(
    ObjectOne.methodName.bind(ObjectOne),
    ObjectTwo.methodName.bind(ObjectTwo)
  )(data);
}

bind调用将返回一个新的函数对象,并将您传递的参数作为上下文对象。