Выбор ответа Junior this, call, apply, bind спрашивают часто обновлено
Разница между call и apply
Вопрос
Чем fn.call(ctx, 1, 2) отличается от fn.apply(ctx, [1, 2])?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Ничем, кроме способа передачи аргументов: списком или массивом. Оба метода вызывают функцию сразу с заданным this, разница только в аргументах: у call через запятую, у apply массивом (или массивоподобным объектом).
Варианты ответа
- Ничем, кроме способа передачи аргументов: списком или массивомправильный ответ
applyвозвращает новую функцию, аcallвызывает сразуcallработает только со стрелочными функциями, аapplyс любымиapplyпривязываетthisнавсегда, аcallна один вызов
Разбор
Оба метода вызывают функцию сразу с заданным this, разница только в аргументах: у call через запятую, у apply массивом (или массивоподобным объектом). Новую функцию возвращает bind, а не apply. Привязки «навсегда» apply не делает, это тоже про bind. Со стрелками ни call, ни apply не меняют this: у стрелки его нет, аргументы при этом передаются нормально.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.