| 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; |