partial.js
439 Bytes
"use strict";
var callable = require("../../object/valid-callable")
, aFrom = require("../../array/from")
, defineLength = require("../_define-length")
, apply = Function.prototype.apply;
module.exports = function (/* …args*/) {
var fn = callable(this), args = aFrom(arguments);
return defineLength(function () {
return apply.call(fn, this, args.concat(aFrom(arguments)));
}, fn.length - args.length);
};