Пожалуйста, объясните откуда берется аргумент в замыкании(внутренняя функция принимающая в себя ...arg)?

Есть такой код на js:

function info(context, fn) { //person1,logPerson
  return function(...args) { //принимает массив параметров методом rest, но откуда он берется(неужели из apply передается в верх, если это так, то почему?) ?!
    fn.apply(context, args); //context,массив параметров
  }
}

function logPerson() {
  console.log(`persone: ${this.name}, ${this.age}, ${this.job}`); //fn
}

const person1 = {
  name: 'Михаил',
  age: 22,
  job: ' Frontend'
}; //context

info(person1, logPerson)();

Замыкания , call,bind,aplly - я понимаю как они работают. Но тут для меня не понятная мешанина. Прошу меня не ругать.

Тут я все понимаю, а вот верхний код вводит меня в ступор...

function generationURL(domain) {
  return function(url) {
    return `http://${url}.${domain}`;
  }
}

let url = generationURL(`com`);
console.log(url('google'));


Ответы (0 шт):