Blame view

node_modules/es5-ext/function/#/curry.js 781 Bytes
2a09d1a4   liuqimichale   添加宜春 天水 宣化
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  "use strict";
  
  var toPosInt     = require("../../number/to-pos-integer")
    , callable     = require("../../object/valid-callable")
    , defineLength = require("../_define-length")
  
    , slice = Array.prototype.slice, apply = Function.prototype.apply
    , curry;
  
  curry = function self(fn, length, preArgs) {
  	return defineLength(function () {
  		var args = preArgs
  				? preArgs.concat(slice.call(arguments, 0, length - preArgs.length))
  				: slice.call(arguments, 0, length);
  		return args.length === length ? apply.call(fn, this, args)
  				: self(fn, length, args);
  	}, preArgs ? length - preArgs.length : length);
  };
  
  module.exports = function (/* Length*/) {
  	var length = arguments[0];
  	return curry(callable(this),
  		isNaN(length) ? toPosInt(this.length) : toPosInt(length));
  };