I believe in this, that you are going to:
function foo(x, y) { return x + y; }
p = Function.apply.bind(foo, null);
p([1,2]);
the closest I can get the underscore to do it is through _.bind:
function foo(x, y) { return x + y; }
p = _.bind(foo.apply, foo, 0);
p([1,2]);
you can also consider another flexible use of this function to summarize an entire array of more than two elements:
function foo(x, y) { return x + y; }
_.reduce([1,2,3,4,5], foo);
or using vanillaJS:
function foo(x, y) { return x + y; }
[1,2,3,4,5].reduce(foo);