Underscore Placeholders and Partials
Underscore 1.6.0 did something ingenious. Instead of implementing the long-awaited _.partialRight method from lodash (very useful for binding callbacks!) Sergey Melnikov cut right to the chase and updated _.partial to support arbitrary placeholder arguments.
From the changelog:
The
_.partialfunction may now be used to partially apply any of its arguments, by passing_wherever you'd like a placeholder variable, to be filled-in later.
Yes! Of course we know what _ is. Of course we can accept an array of arguments and replace each _ with the corresponding argument. And now we can.
function dingus (a, b) {
console.log({ a: a, b: b });
}
var dingusA = _.partial(dingus, _, 'some B');
var dingusB = _.partial(dingus, 'some A', _);
Overkill for two arguments (we've just reimplemented the callback-saving partial and partialRight)--but as the argument list grows, the flexibility of a placeholder becomes much more apparent.
An invaluable utility or just a cute trick? Either way, it's clever.
Written by RJ Zaworski
Related protips
Have a fresh tip? Share with Coderwall community!
JavaScript on a page runs with the privileges of that origin. One altered library, tag manager, or snippet can read inputs, change what people see, and call your APIs as the user.
Security insights from Cside