Using bind() in this case //JAVASCRIPT

I understand that bind() takes a argument from another function creates a copy with a preset argument value and assigns that to another function, but in this example I simply don’t understand how we can take the limit argument and the function still works, when limit is preset to 20, where and how are the array elements that we are cycling through passed in and compared when we store them in minAgeForJapan? I hope I was as clear as I could be, thx.

let years = [1990, 1965, 1947, 2005, 2001];
 
function arrCalc(arr,funcPassedIn) {
    let result =  [];
    for (let i = 0; i < arr.length; i++) {
        result.push(funcPassedIn(arr[i]));
    }
    return result;
};
 
function calcAgeFunc(arrayIndex) {
    return 2020 - arrayIndex;
};
let agesCalculated = arrCalc(years, calcAgeFunc);
console.log(agesCalculated);//[30, 55, 83, 15, 19];
 
function isFullAge (limit, arrayIndex) {
    return arrayIndex >= limit;
}
 
let minAgeForJapan = arrCalc(agesCalculated, isFullAge.bind(this, 20));//we set the min age to 20 
console.log(minAgeForJapan);//[true, true, true, false, false]```