Sobes.tech
Back to questions
Junior — Middle
68

Какое отличие между использованием стрелочной функции и традиционной функцией при объявлении в JavaScript?

Companies where asked
SunlightSunlight

Answer from AI

sobes.tech AI

Стрелочные функции в JavaScript отличаются от традиционных функций несколькими ключевыми моментами:

  • Контекст this: В стрелочных функциях this лексически наследуется из окружающего контекста, то есть ссылается на тот же объект, что и во внешней области видимости. В традиционных функциях this определяется в момент вызова и зависит от того, как функция была вызвана.

  • Отсутствие arguments: В стрелочных функциях нет собственного объекта arguments. Для доступа к аргументам нужно использовать параметры или rest-параметры.

  • Нельзя использовать как конструктор: Стрелочные функции не могут быть вызваны с new и не имеют собственного prototype.

  • Синтаксис: Стрелочные функции короче и удобнее для написания коротких функций.

Пример:

const obj = {
  traditionalFunc: function() { console.log(this); },
  arrowFunc: () => { console.log(this); }
};

obj.traditionalFunc(); // this указывает на obj
obj.arrowFunc(); // this указывает на внешний контекст (например, window или undefined в strict mode)