freeCodeCamp/guide/chinese/javascript/higher-order-functions/index.md

1.4 KiB
Raw Blame History

title localeTitle
Higher Order Functions 高阶函数

高阶函数

高阶函数是在执行时返回函数,将函数作为其一个或多个参数或两者的函数。如果您已经使用了任何Array方法(如mapfilter 或者将回调函数传递给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的引用的更多信息,请参阅Closures指南。

有关更多信息Closures