Javascript 为什么绑定参数不指向实际的函数参数

Javascript 为什么绑定参数不指向实际的函数参数,javascript,Javascript,为什么limit是20而不是el=20,因为在isFullAge.bindthis中,20是其中的最后一个参数,所以它必须传递给“el”参数,但为什么它被设置为“limit”参数 var years = [1990, 1965, 1937, 2005, 1998]; function arrayCalc(arr, fn) { var arrRes = []; for (var i = 0; i < arr.length; i++) {

为什么limit是20而不是el=20,因为在isFullAge.bindthis中,20是其中的最后一个参数,所以它必须传递给“el”参数,但为什么它被设置为“limit”参数

var years = [1990, 1965, 1937, 2005, 1998];

    function arrayCalc(arr, fn) {
        var arrRes = [];
        for (var i = 0; i < arr.length; i++) {
            arrRes.push(fn(arr[i]));
        }
        return arrRes;
    }

    function calculateAge(le) {
        return 2016 - le;
    }

    function isFullAge(limit,el)  
     {
        return el >= limit;
    }

    var ages = arrayCalc(years, calculateAge);
    var fullJapan = arrayCalc(ages, isFullAge.bind(this, 20)); // i'm confused here
    console.log(ages);
    console.log(fullJapan);
第一个参数成为此值的参数。每个后续值都按从左到右的顺序映射到参数上。它们不是从末尾向后分配的

20是绑定调用中this值之后的第一个参数,因此它被分配给limit,因为limit是第一个参数

你说过:

isFullAge.bind(this, 20, example))

…然后示例将被分配给el,因为el是第二个参数,而示例将是此值之后的第二个参数。

但是“el”已经设置为“函数arrayCalcarr,fn”中的Aragements,它应该是第一个参数,对吗?@sAGarm-请看我如何开始回答的下半部分。这是一个假设。