…Вам нужно будет это знать… по крайней мере

1. Определение и вызов функции

JS-функции могут быть объявлены несколькими способами:

Объявление функции

Заявленные функции выполняются не сразу. Они «сохраняются для последующего использования» и будут выполняться позже, когда они вызываются (вызываются)

Выражение функции

Функциональные выражения определяют, что именованная или анонимная функция может быть сохранена в переменной.

Стрелочные функции

Выражение функции со стрелкой – это более короткий синтаксис для написания выражений функций. Стрелочные функции не создают собственное значение this.

Конструктор функций

Функции также могут быть определены с помощью встроенного конструктора функций JavaScript с именем Function().

Функция самовызова

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

Вызовы функций

Вызов функции — это выполнение кода, создающего тело функции, или просто вызов функции.

Простой пример вызова функции:

Более продвинутый пример — IIFE:

Ключом к пониманию ключевого слова this является четкое представление о вызове функции и о том, как он влияет на контекст.

В JavaScript this — это текущий контекст выполнения функции.

JavaScript имеет 4 типа вызова функций:

  • Вызов функции как Function: alert('Hello World!')
  • Вызов функции как метода : console.log('Hello World!')
  • Вызов функции с помощью конструктора функций: new RegExp('\\d')
  • Косвенный вызов: alert.call(undefined, 'Hello World!')

…как функция

this — это глобальный объект в вызове функции.

Но не в строгом режиме

…как метод

this – это объект, которому принадлежит метод при вызове метода.

Вызов конструктора

Или используя синтаксис класса

this — это недавно созданный объект в вызове конструктора.

Косвенный вызов

this – это первый аргумент .call() или .apply() в косвенном вызове.

& в связанной функции

this – это первый аргумент .bind() при вызове связанной функции.

…также в функции стрелки

this – это окружающий контекст, в котором определена стрелочная функция.

Вы можете прочитать больше о функциях и их вызовах здесь: https://dmitripavlutin.com/gentle-explanation-of-this-in-javascript/

Вы можете подписаться на меня на Medium, отсканировав это 👇