使用Underscore _.compose
方法,是否可以在合成中调用对象方法并将上下文设置为拥有所调用方法的对象?
example: function(data) {
return _.compose(
ObjectOne.methodName,
ObjectTwo.methodName
)(data);
}
执行ObjectOne.methodName()
时,我希望this
为ObjectOne
。但是,我在两个方法调用中都将Window
作为上下文。
答案 0 :(得分:2)
使用Function.prototype.bind
,就像这样
example: function(data) {
return _.compose(
ObjectOne.methodName.bind(ObjectOne),
ObjectTwo.methodName.bind(ObjectTwo)
)(data);
}
bind
调用将返回一个新的函数对象,并将您传递的参数作为上下文对象。