function(functionBody, argNames, argValues, context) {
		// store context
		var functionArgs = argNames.concat(functionBody);
		var fn = Function.apply(null, functionArgs);
		
		// return function
		return function() {
			// mix predefined arguments with passed 
			var args = argValues.concat(Array.prototype.slice.call(arguments));
			return fn.apply(context, args);
		}
	}
function(functionBody, argNames, argValues, context) {
		
		var functionArgs = argNames.concat(functionBody);
		var fn = Function.apply(null, functionArgs);
		
		
		return function() {
			
			var args = argValues.concat(Array.prototype.slice.call(arguments));
			return fn.apply(context, args);
		}
	}
function ( functionBody , argNames , argValues , context ) { // store context var functionArgs = argNames . concat ( functionBody ) ; var fn = Function . apply ( null , functionArgs ) ; // return function return function ( ) { // mix predefined arguments with passed  var args = argValues . concat ( Array . prototype . slice . call ( arguments ) ) ; return fn . apply ( context , args ) ; } }
Static helper fuction factory
Static helper fuction factory