1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| 'use strict';
|
| /**
| * Syntactic sugar for invoking a function and expanding an array for arguments.
| *
| * Common use case would be to use `Function.prototype.apply`.
| *
| * ```js
| * function f(x, y, z) {}
| * var args = [1, 2, 3];
| * f.apply(null, args);
| * ```
| *
| * With `spread` this example can be re-written.
| *
| * ```js
| * spread(function(x, y, z) {})([1, 2, 3]);
| * ```
| *
| * @param {Function} callback
| * @returns {Function}
| */
| module.exports = function spread(callback) {
| return function wrap(arr) {
| return callback.apply(null, arr);
| };
| };
|
|