Funcțiile sunt piesa centrală a JavaScript. În trecut, ele erau legate de utilizarea cuvântului cheie function, dar ES6 aduce o nouă și mai elegantă modalitate de scriere cu așa-numitele funcții săgeată. Această sintaxă nouă face codul tău nu doar mai scurt, ci rezolvă și câteva probleme legate de contextul this. În acest ghid vei afla tot ce trebuie să știi despre funcțiile săgeată.
Cele mai importante constatări
- Funcțiile săgeată oferă o sintaxă mai scurtă în comparație cu funcțiile tradiționale.
- Ele nu au un propriu context this, ceea ce le face substanțial de utile pentru utilizarea în funcțiile de callback.
- Eliminarea acoladelor și a instrucțiunii return devine posibilă atunci când funcția returnează doar o singură expresie.
Introducere în funcțiile săgeată
Funcțiile săgeată sunt de obicei folosite pentru a face codul mai ușor de citit și mai compact. În loc să scrii function, poți folosi noua sintaxă pentru a declara funcția mai concis.
Pentru a înțelege ce sunt funcțiile săgeată, poți folosi funcțiile tradiționale ca punct de plecare. Atunci când declari o funcție cu cuvântul cheie function, aceasta este adesea ceva mai lungă și mai puțin elegantă. Iată cum arată un exemplu de funcție standard în JavaScript:
Aceasta este baza de plecare, de la care trecem la funcțiile săgeată.
Pasul 1: Declararea unei funcții săgeată
În locul cuvântului cheie function, poți pur și simplu să setezi parametrii între paranteze și apoi să folosești o săgeată urmată de corpul funcției. Iată cum arată funcția anterioară ca funcție săgeată:
Așa cum poți vedea, sintaxa este mult mai compactă. După prima încercare poți verifica dacă funcția lucrează corect.
Pasul 2: Utilizarea funcțiilor săgeată cu Array-uri
Un alt mare avantaj al funcțiilor săgeată este dat de utilizarea lor cu Array-uri. Să luăm un exemplu. Să presupunem că ai un Array de numere și vrei să găsești poziția unui anumit număr. Aici folosim metoda findIndex pentru a găsi indexul:
Funcția săgeată simplifică mult citirea codului și reduce necesitatea unui cuvânt cheie de funcție suplimentar.
Pasul 3: Scurtarea funcțiilor săgeată
Dacă o funcție săgeată are doar o singură expresie, poți omite acoladele și cuvântul cheie return. Iată cum arată atunci când reducem și mai mult funcția findIndex:
Aceasta nu doar este mai scurtă, ci și mai elegantă. Poți testa funcția și te poți asigura că ea încă funcționează corect.
Pasul 4: Gestionarea cuvântului cheie this
Un avantaj crucial al funcțiilor săgeată este gestionarea contextului this. În funcțiile clasice, this devine adesea imprevizibil, în special atunci când funcția este folosită ca funcție de callback. Funcțiile săgeată, pe de altă parte, leagă this la contextul în care au fost definite.
Uită-te la următorul exemplu:
obj.print(); // Afișează "Text"
Dar dacă folosești setTimeout cu o funcție tradițională, contextul this se schimbă:
Prin folosirea unei funcții săgeată în interiorul lui setTimeout, obții același rezultat ca în cazul funcției clasice, fără a pierde contextul:
Pasul 5: Păstrarea atribuirii lui this
Poți lega this la o variabilă pentru a te asigura că poți avea acces la ea. Cu toate acestea, acest model este adesea mai puțin elegant decât utilizarea funcțiilor săgeată.
Beneficiile funcțiilor săgeată
- Sunt mai scurte și mai elegante în comparație cu declarațiile de funcții tradiționale.
- Ele nu au un context this propriu, ceea ce simplifică utilizarea lor în funcțiile de apel invers.
- Sintaxa îți permite să faci codul mult mai ușor de citit.
Rezumat
Funcțiile săgeată oferă o modalitate practică de a declara funcții JavaScript eficient. Prin noua sintaxă nu numai că se îmbunătățește citirea, ci și gestionarea contextului this devine semnificativ mai simplă. Ar trebui să folosești funcțiile săgeată mai ales atunci când ai nevoie de funcții de apel invers sau de expresii de funcții mai scurte.
Întrebări frecvente
Ce sunt funcțiile săgeată?Funcțiile săgeată sunt o sintaxă mai scurtă pentru funcțiile din JavaScript, introduse în ES6.
Când ar trebui să folosesc funcțiile săgeată?Folosește funcțiile săgeată în special în scenariile cu apel invers sau atunci când ai nevoie de funcții anonime.
Ce beneficii au funcțiile săgeată în ceea ce privește contextul this?Funcțiile săgeată leagă this de contextul înconjurător, ceea ce evită adesea comportamente imprevizibile în cazul funcțiilor normale.