为什么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);
答案 0 :(得分:1)
first 参数成为this
值。每个后续值从左到右依次映射到参数 。它们不是从头到尾分配的。
20
是对this
的调用中bind
值之后的 first 参数,因此将其分配给limit
,因为{{1 }}是 first 参数。
您是否说过:
limit
…然后isFullAge.bind(this, 20, example))
将被分配给example
,因为el
是第二个参数,而el
将是example
值之后的第二个参数。 / p>