繁体   English   中英

我如何正确地将null应用于fn.apply?

[英]How do I properly curry fn.apply with null?

背景:我想在一个采用多个参数的纯fn上映射参数数组的数组。 我认为使用null并使用Array.map()会引起问题。

[[x1, y1], [x2, y2], [x3, y3], ... [xn, yn]].map(curry(fn.apply, null))



var curry = function(fn, value) {
    return function (x, y) {
        return fn(value, x, y);
    };
}
var fn = (x,y) => [x, y];
var fn_c = curry(fn.apply, null)
fn_c([1,2]);


Uncaught TypeError: Function.prototype.apply was called on undefined, which is a undefined and not a function
at <anonymous>:3:20
at <anonymous>:8:5

在curried函数中仅会记住apply ,而没有fn会影响应用。 因此,curried函数尝试运行apply(x,y)而不是fn.apply(x,y) ,这当然会失败。

我该如何检索已应用的函数来传递?

弄清楚了。 我忘记了函数也是对象:

var curry = function(fn, value) {
    return function (x, y) {
        return fn(value, x, y);
    };
}
var fn = (x,y) => [x, y];
var fn_c = curry(Function.prototype.apply.bind(fn), null)
fn_c([1,2]);

...很丑。 我只是.map(params => fn.apply(null, params))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM