Here you can find the source of partial()
/*//from w w w.ja va 2s .c o m * Delicious Bookmarker * Copyright (c) 2009,2010 Haran Shivanan <shivanan@statictype.org> * Licensed under the MIT License. See the LICENSE.txt file */ Function.prototype.partial = function(){ var fn = this, args = Array.prototype.slice.call(arguments); return function(){ var arg = 0; for ( var i = 0; i < args.length && arg < arguments.length; i++ ) if ( args[i] === undefined ) args[i] = arguments[arg++]; return fn.apply(this, args); }; };
Function.prototype.times = function (n) { if (n <= 0) { throw new TypeError('Invalid argument'); var fn = this; return function () { for (var i = 0; i < n; i += 1) { fn.call(null, arguments); }; };
Function.prototype.map = function (map) { var params = this.getParamNames(); var fn = this; for (var i in params) fn = fn.bind({}, map[params[i]]); return fn; };
Number.prototype.times = function(f, context){ var n = Number(this); for(var i = 0; i < n; i++){ f.call(context, i); };
function Range(from, to) { this.from = from; this.to = to; }; Range.prototype = { constructor: Range, includes: function(x) { return this.from <= x && x <= this.to; }, ...
Number.prototype.times = function(f, context) { var n = Number(this); for(var i = 0; i < n; i++) f.call(context, i); }; String.prototype.trim = String.prototype.trim || function() { if (!this) return this; return this.replace(/^\s+|\s+$/g, ""); }; Function.prototype.getName = function() { ...