@mikitachyzhyk

Как аргументы переданной функции в другую функцию попадают в аргументы возвращаемой безымянной функции?

Помогите разобраться, не могу понять как параметры a, b могут стать аргументами безымянной функции, если мы их нигде не передаем.

function fn(a, b) {
  console.log(a, b, this);
}

var magicFn = bind(fn, {});

magicFn(2, 3);

function bind(cb, context) {

  console.log(arguments); // arguments[fn(a, b), {}]

  return function() {

    console.log(arguments); // arguments[2, 3]

    cb.apply(context, arguments);
  }
}
  • Вопрос задан
  • 54 просмотра
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Так безымянная функция возвращается через return.
Таким образом, magicFn - это и есть безымянная функция, только теперь она в переменной.
И вы передаете ей явно 2,3, которые и попадают в безымянную функцию.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы