2.5 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	title, localeTitle
| title | localeTitle | 
|---|---|
| Higher Order Functions | Функции более высокого порядка | 
Функции более высокого порядка
Функция высшего порядка - это любая функция, которая возвращает функцию при выполнении, принимает функцию как один или несколько своих аргументов или и то, и другое. Если вы использовали какой-либо из методов Array например map или filter , или передали функцию обратного вызова в $.get jQuery, вы уже работали с функциями более $.get порядка.
Когда вы используете Array.map , вы предоставляете функцию как единственный аргумент, который применяется к каждому элементу, содержащемуся в массиве.
var arr = [ 1, 2, 3 ]; 
 
 var arrDoubled = arr.map(function(num) { 
  return num * 2; 
 }); 
 
 console.log(arrDoubled); // [ 2, 4, 6 ] 
Функции более высокого порядка также могут возвращать функцию. Например, вы можете сделать функцию multiplyBy которая принимает число и возвращает функцию, которая умножает другое число, которое вы предоставляете первым предоставленным номером. Вы можете использовать этот подход для создания функции multiplyByTwo для перехода к Array.map . Это даст вам тот же результат, который вы видели выше.
function multiplyBy(num1) { 
  return function(num2) { 
    return num1 * num2; 
  } 
 } 
 
 var multiplyByTwo = multiplyBy(2); 
 
 var arr = [ 1, 2, 3 ]; 
 
 var arrDoubled = arr.map(multiplyByTwo); 
 
 console.log(arrDoubled); // [ 2, 4, 6 ] 
См. Руководство по закрытию для получения дополнительной информации о том, как multiplyByTwo сохраняет ссылку на num1 в приведенном выше примере.