Выбор ответа Junior this, call, apply, bind спрашивают часто обновлено
От чего зависит this
Вопрос
От чего зависит значение this внутри обычной (не стрелочной) функции?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: От способа вызова: new, call/apply/bind, obj.f() или f(). Для обычных функций this определяется в момент вызова.
Варианты ответа
- От места, где функция объявлена в коде, как у стрелочных функций
- От объекта, в литерале которого функция была написана изначально
- От способа вызова:
new,call/apply/bind,obj.f()илиf()правильный ответ - Всегда равно глобальному объекту, если явно не использовать
bind
Разбор
Для обычных функций this определяется в момент вызова. Правила по приоритету: new даёт новый объект, явная привязка даёт переданный объект, вызов как метод даёт объект слева от точки, обычный вызов даёт undefined в строгом режиме и глобальный объект в нестрогом. От места объявления this зависит только у стрелочных функций. Литерал объекта ничего не привязывает: метод, вынутый из объекта, теряет this. «Всегда глобальный объект» неверно и для методов, и для строгого режима.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.