Пожалуйста, объясните откуда берется аргумент в замыкании(внутренняя функция принимающая в себя ...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'));