【发布时间】:2019-01-24 15:48:11
【问题描述】:
我正在学习一些教程,并想出了以下代码,但我无法理解它是如何在幕后工作的。任何人都可以请解释它实际上是如何工作的。
所以我在这里做了一个函数mapForEach。
const arr1 = [1, 2, 3]
const mapForEach = (arr, fn) => {
let newArr = []
for (let i = 0; i < arr.length; i++) {
newArr.push(
fn(arr[i])
)
}
return newArr;
}
现在我在这里制作了另外两个函数 CheckPastLimit 和 CheckPastLimitSpecified。现在在这里 checkPastList 检查条件。到目前为止一切顺利。
const CheckPastLimit = (limiter, item) => {
return item > limiter
}
现在这里 CheckPastLimit 用作参数和 arr2 返回值,通过 CheckPastLimit 条件(item > 限制器)。所以我想知道这条线是如何工作的?这条线在幕后是如何运作的?
const arr2 = mapForEach(arr1, CheckPastLimit.bind(this, 1))
console.log(arr2)
【问题讨论】:
-
除非我错了,否则教程作者似乎不知道
Array#map之类的基本功能,而是自己重新实现...... -
您是否阅读过有关
bind工作原理的文档?这个问题可以有无穷无尽的答案。请询问您所面临的具体问题。 -
bind和this的使用在这里没有意义 -const CheckPastLimitSimplified = limiter => item => item > limiter处理了两者,但仍然产生相同的结果。更好的是,将函数重命名为greaterThan- 相关:stackoverflow.com/a/32787782
标签: javascript function functional-programming