gpt4 book ai didi

javascript - 为什么绑定(bind)参数不指向实际的函数参数

转载 作者:行者123 更新时间:2023-12-03 00:43:01 24 4
gpt4 key购买 nike

为什么 limit 是 20 而不是 el=20 因为在 isFullAge.bind(this,20) 中,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);

最佳答案

第一个参数成为this值。每个后续值都会按顺序从左到右映射到参数。它们不是从末尾向后分配的。

20 是调用 bindthis 值之后的第一个参数,因此它被分配给limit 因为 limit第一个参数。

你是否说过:

isFullAge.bind(this, 20, example))

...那么 example 将被分配给 el,因为 el 是第二个参数,而 example 将是this 值之后的第二个参数。

关于javascript - 为什么绑定(bind)参数不指向实际的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53364425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com