该代码如何在幕后工作?

时间:2018-08-17 15:00:56

标签: javascript function functional-programming

我正在关注一些教程,并且想出了以下代码,我无法理解它在后台如何工作。任何人都可以解释一下它是如何工作的。

所以我在这里做了一个函数 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用作通过CheckPastLimit条件(项目>限制器)的参数和arr2返回值。所以我想知道这条线是如何工作的?这条线在幕后如何运作?

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

1 个答案:

答案 0 :(得分:0)

在此处使用绑定时,我们实现currying

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

示例:

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