Я только что опубликовал исчерпывающий видеоурок, в котором описывается мой процесс определения this в любой программе на JavaScript. К концу вы сможете понять, как this работает с:

  • Нормальные вызовы функций
  • Вызовы методов
  • Функции обратного вызова
  • Конструкторы
  • Стрелочные функции =>
  • bind, call, apply
  • class ключевое слово
  • super() и super.method()
  • Встроенные функции, такие как addEventListener и forEach.

Каждый программист должен развивать способность надежно интерпретировать компьютерные программы. Без этого навыка трудно быть уверенным в чем-либо, и все превращается в бессистемный процесс проб и ошибок. Для программистов JavaScript this часто является частью проблемы.

this может быть сложно, потому что вы не можете понять, что происходит с помощью чистой логики. Предварительные знания необходимы для понимания вещей, потому что они взаимодействуют со многими частями языка. С новыми недавними новыми функциями (такими как классы и функции стрелок) все стало еще сложнее.

Но сколько предварительных знаний вам нужно? Важно отработать самую простую ментальную модель, которая является правильной. Это легче сказать, чем сделать. Многие чрезмерно усложняют свою модель с помощью нерелевантной информации. Хуже того, часто принимаются модели, которые также являются неправильными. Можно так же легко пойти в другом направлении и неосознанно использовать неполные модели.

В основе моей системы лежит простая блок-схема, представляющая в точности простейшую правильную ментальную модель. Это просто правильный баланс всего, что вам нужно, и ничего лишнего. Хотя блок-схема действительно проста, требуется много нюансов и навыков, чтобы правильно применить ее в любой конкретной ситуации. Обязательно посмотрите видео, чтобы узнать, как это сделать.