了解JavaScript中的术语iteratee,回调,函数工厂

伊拉

我试图对JavaScript术语有点熟悉。我认为我对术语iterateecallbackfunction factory感到困惑

让我使用以下愚蠢的示例:

//this function accept an array and then  returns a new array that
//contains the elements of the first array altered by func
function mapForEach(arr, func) {
   var newArr = [];
   for (var i = 0; i < arr.length; i++) {
    newArr.push(func(arr[i]));
  }
 return newArr;
}

//this function multiplies two numbers
var multiply = function (a, b) {
 console.log(a * b);
};

//this is a silly function that passes a multiplier as the first
//argument of the multiply function
var multiplyBy = function(multiplier) {
 return multiply.bind(this, multiplier);
};

var arr = [1, 2, 3];

mapForEach(arr, multiplyBy(3)); //[6, 10, 20]

因此,到目前为止,据了解:

  • iteratee(又称谓词)是一个功能对象,可以完成一些工作。在此示例中,mapForEach接受一个func对象对arr元素进行一些处理,因此func可以称为iteratee,因此multiplyByiteratee在一般的概念中,也multiply可以将它视为迭代器,就像执行基本工作的独立功能一样。
  • callback是您提供给另一个功能B的功能A,该功能B将由另一个功能调用(因此,另一个功能B –可以说–“回调”功能A)。在此示例中,当mapForEach被调用时,在新环境中执行,在此环境中它回调func函数对象。因此,该func对象也可以称为回调然而,在同样的情况下,mapForEach也可以看作是一个函数,在执行的时候,回调的multiplyBy功能,即multiplyBy是一个回调
  • 函数工厂,我们调用一个为我们做一些工作和/或返回一个值的函数(即数组,对象,函数对象等)。在我们的示例中multiplyBy是一个函数对象,该函数对象在被调用时会返回(副本)另一个在其闭包multiply中具有multiplier参数的函数对象(因此multiplyBy工厂功能

我是否所有这些都正确,(或者我发疯了:-P)

威克多(Wiktor Zychla)

Iteratee并不是只做一些工作的功能。它必须在可迭代集(例如数组)上做一些工作。谓词是一个带有参数并返回true / false的函数,例如,谓词用于过滤可迭代的集合。因此,iteratee和谓词绝对不相同。

函数工厂不仅仅是执行某些工作并返回值的函数。它是一个函数,可以根据提供的参数创建一系列其他函数。

multiplyBy不回调“本身”,将func传递到mapForEach是。multiplyBy成为当你把它传递给调用它后面的另一种方法的回调。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

想了解javascript中回调函数的需求

来自分类Dev

了解 NodeJS 中的回调函数

来自分类Dev

了解回调函数jQuery

来自分类Dev

Javascript | 了解回调函数的安全性

来自分类Dev

了解匿名函数中的参数(回调示例)

来自分类Dev

了解匿名函数中的参数(回调示例)

来自分类Dev

了解Scrapy中的回调

来自分类Dev

了解Express中的回调

来自分类Dev

了解NodeJS中的回调

来自分类Dev

如何使回调函数在Javascript中同步?

来自分类Dev

javascript / jQuery中的回调函数参数

来自分类Dev

JavaScript中的回调函数如何工作

来自分类Dev

ajax请求中的Javascript回调函数

来自分类Dev

javascript中带箭头函数的回调

来自分类Dev

在 JavaScript 回调中,术语“通过”或“通过”是什么意思?

来自分类Dev

从JavaScript的回调函数中调用对象函数

来自分类Dev

使用简单示例了解Javascript回调

来自分类Dev

了解React的钩子useEffect函数。何时调用useffect中的回调函数(即取消订阅)?

来自分类Dev

如何从JavaScript中的回调函数中获取全部数据

来自分类Dev

Javascript回调函数的用法

来自分类Dev

嵌套的JavaScript回调函数

来自分类Dev

javascript回调函数同步

来自分类Dev

Javascript匿名回调函数

来自分类Dev

javascript回调函数选择

来自分类Dev

将参数传递给JavaScript中的url回调函数

来自分类Dev

JavaScript中同步回调函数的用途是什么?

来自分类Dev

Javascript,在回调函数中超出变量范围?

来自分类Dev

javascript回调函数中的参数从何而来?

来自分类Dev

JavaScript中的回调只是空白函数吗?