javascript-对部分应用程序使用绑定而不会影响接收器
作者:互联网
如果要部分应用某个函数,则可以使用bind,但是似乎必须影响该函数的接收者(bind的第一个参数).这个对吗?
我想使用绑定执行部分应用程序而不影响接收器.
myFunction.bind(iDontWantThis, arg1); // I dont want to affect the receiver
解决方法:
partial application using
bind
without affecting the receiver
那不可能绑定被明确设计为部分地应用“第零个参数”(this值),以及可选的更多参数.如果您只想修复函数的第一个(可能还有更多)参数,但不加限制,则需要使用其他函数:
Function.prototype.partial = function() {
if (arguments.length == 0)
return this;
var fn = this,
args = Array.prototype.slice.call(arguments);
return function() {
return fn.apply(this, args.concat(Array.prototype.slice.call(arguments)));
};
};
当然,这种功能在许多库中也是可用的,例如. Underscore、Lodash、Ramda等.但是没有本地等效项.
标签:partial-application,javascript,function-binding 来源: https://codeday.me/bug/20191013/1906073.html