Sobes.tech
Junior — Middle

Ի՞նչ տարբերություն կա սրունկային ֆունկցիայի և ավանդական ֆունկցիայի օգտագործման միջև JavaScript-ում հայտարարելու ժամանակ։

sobes.tech AI

Պատասխան 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)