Sobes.tech
Junior

Koja je razlika između dva načina definisanja funkcije?

sobes.tech АИ

Одговор од АИ

Главна разлика је у контексту this.

Начин дефинисања функције Разлика
дефинисање функције Контекст this се одређује према начину на који је функција позвана. Подиже се пре извршавања кода (hoisting).
стрелачка функција Контекст this наследи се из околног (лексичког) контекста. Не подиже се (без hoisting).
// дефинисање функције
function обичнаФункција() {
  console.log(this); // `this` зависи од позива
}

// стрелачка функција
const стрелачкаФункција = () => {
  console.log(this); // `this` наследи из контекста у коме је дефинисана
};

Стрелачке функције немају свој објекат arguments (узима се из спољашњег контекста) и не могу се користити као конструктори са оператором new.