首页 > 解决方案 > 此代码如何在幕后工作?

问题描述

我正在关注一些教程,并提出了以下代码,但我无法理解它是如何在幕后工作的。任何人都可以请解释它实际上是如何工作的。

所以在这里我做了一个函数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;
}

现在在这里我制作了另外两个函数CheckPastLimitCheckPastLimitSpecified。现在在这里 checkPastList 检查条件。到目前为止一切都很好。

const CheckPastLimit = (limiter, item) => {
    return item > limiter
}

现在这里 CheckPastLimit 用作参数和 arr2 返回值,通过 CheckPastLimit 条件(项目 > 限制器)。所以我想知道这条线是如何工作的?这条线在幕后是如何运作的?

const arr2 = mapForEach(arr1, CheckPastLimit.bind(this, 1))
console.log(arr2)

标签: javascriptfunctionfunctional-programming

解决方案


当我们在这里使用绑定时,我们实现了柯里化

这意味着CheckPastLimit.bind(this, 1)将返回带有传递的第一个参数的新函数。

例子:

const multiply = (a, b) => a*b;
const multiplyByTwo = multiply.bind(this,2)
mltiplyBuTwo(5)// 5*2=10

推荐阅读