Javascript 这段代码在幕后是如何工作的?

Javascript 这段代码在幕后是如何工作的?,javascript,function,functional-programming,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])

我正在学习一些教程,我想出了下面的代码,我无法理解它在幕后是如何工作的。任何人都可以解释它是如何工作的

因此,我在这里创建了一个函数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作为参数,arr2返回值通过CheckPastLimit条件(项>限制器)。我想知道这条线到底是怎么运作的?这条线在幕后如何运作

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

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

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

例如:

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

除非我大错特错,否则教程作者似乎不知道诸如
Array#map
之类的基本函数,而是自己重新实现它……您阅读了
bind
工作原理的文档了吗?这个问题可能有无穷无尽的答案。相反,请询问您面临的具体问题。在这里使用
bind
this
没有任何意义-
const checkpasslimitsimplified=limiter=>item=>item>limiter
处理了这两个问题,但仍然产生相同的结果。更好的是,将函数重命名为
greater,而不是
-相关:
const multiply = (a, b) => a*b;
const multiplyByTwo = multiply.bind(this,2)
mltiplyBuTwo(5)// 5*2=10