You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
27 lines
780 B
27 lines
780 B
var apply = require('./_apply'), |
|
arrayMap = require('./_arrayMap'), |
|
baseIteratee = require('./_baseIteratee'), |
|
baseRest = require('./_baseRest'), |
|
baseUnary = require('./_baseUnary'), |
|
flatRest = require('./_flatRest'); |
|
|
|
/** |
|
* Creates a function like `_.over`. |
|
* |
|
* @private |
|
* @param {Function} arrayFunc The function to iterate over iteratees. |
|
* @returns {Function} Returns the new over function. |
|
*/ |
|
function createOver(arrayFunc) { |
|
return flatRest(function(iteratees) { |
|
iteratees = arrayMap(iteratees, baseUnary(baseIteratee)); |
|
return baseRest(function(args) { |
|
var thisArg = this; |
|
return arrayFunc(iteratees, function(iteratee) { |
|
return apply(iteratee, thisArg, args); |
|
}); |
|
}); |
|
}); |
|
} |
|
|
|
module.exports = createOver;
|
|
|