Друзья, есть ли вопросы на собеседовании о том, что this зависит от контекста вызова?
Вполне могут быть, так как это одна из базовых концепций языка
Сохранилось ли эта особенность в классах и вообще ситуация в ES6?
классы es2015 - всего лишь синтаксический сахар над прототипапами - более привычный синтаксис для пришедших из языков с классическим ООП, таких как java и C#
соответственно ситуация абсолютно такая же, как и с обычными функциями, единственное дополнение нового синтаксиса - нельзя вызывать конструктор без оператора new
Если можете посоветуйте задачки на контекст, чтобы потренировать, ну или лайфхак, который поможет изи запомнить это.
Надеюсь сойдет за лайфхак:
func()
вызов с контекстом по-умолчанию (undefined в strict режиме или глобальный объект не в strict режиме)
func.call(ctx, ...args)
func.apply(ctx, args)
obj.func.call(ctx, ...args)
obj.func.apply(ctx, args)
вызов с указанным контекстом ctx
obj.func()
вызов с контекстом obj
(0, obj.func)()
хак "отвязка контекста", функция вызывается с контекстом по-умолчанию