--- title: call tags: function,advanced --- Given a key and a set of arguments, call them when given a context. - Use a closure to call `key` with `args` for the given `context`. ```js const call = (key, ...args) => context => context[key](...args); ``` ```js Promise.resolve([1, 2, 3]) .then(call('map', x => 2 * x)) .then(console.log); // [ 2, 4, 6 ] const map = call.bind(null, 'map'); Promise.resolve([1, 2, 3]) .then(map(x => 2 * x)) .then(console.log); // [ 2, 4, 6 ] ```