Back to questions
Sunlight
Junior — Middle
68
Какое отличие между использованием стрелочной функции и традиционной функцией при объявлении в JavaScript?
Companies where asked
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)