Sobes.tech
Junior — Middle
89

Was ist der Unterschied zwischen der Verwendung einer Pfeilfunktion und einer traditionellen Funktion bei der Deklaration in JavaScript?

Unternehmen wurden gefragt
SunlightSunlight

Antwort von AI

sobes.tech KI

Стрелочные функции в 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)