编程语言
首页 > 编程语言> > javascript-对部分应用程序使用绑定而不会影响接收器

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)));
    };
};

当然,这种功能在许多库中也是可用的,例如. UnderscoreLodashRamda等.但是没有本地等效项.

标签:partial-application,javascript,function-binding
来源: https://codeday.me/bug/20191013/1906073.html