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)