You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					21 lines
				
				520 B
			
		
		
			
		
	
	
					21 lines
				
				520 B
			| 
								 
											3 years ago
										 
									 | 
							
								// optional / simple context binding
							 | 
						||
| 
								 | 
							
								var aFunction = require('./_a-function');
							 | 
						||
| 
								 | 
							
								module.exports = function (fn, that, length) {
							 | 
						||
| 
								 | 
							
								  aFunction(fn);
							 | 
						||
| 
								 | 
							
								  if (that === undefined) return fn;
							 | 
						||
| 
								 | 
							
								  switch (length) {
							 | 
						||
| 
								 | 
							
								    case 1: return function (a) {
							 | 
						||
| 
								 | 
							
								      return fn.call(that, a);
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    case 2: return function (a, b) {
							 | 
						||
| 
								 | 
							
								      return fn.call(that, a, b);
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    case 3: return function (a, b, c) {
							 | 
						||
| 
								 | 
							
								      return fn.call(that, a, b, c);
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return function (/* ...args */) {
							 | 
						||
| 
								 | 
							
								    return fn.apply(that, arguments);
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 |