Naučiti se in razumeti React - praktični vodnik

Puščične funkcije v JavaScriptu - Učinkovita raba

Vsi videoposnetki vadnice Naučite se in razumite React - praksa vadnica

Funkcije so jedro JavaScripta. Če so bile prej vezane na uporabo ključne besede function, prinaša ES6 novo in bolj elegantno pisanje s t. i. puščičnimi funkcijami. Ta nova sintaksa ne samo skrajša tvoj kodo, ampak tudi rešuje nekaj težav, povezanih s kontekstom this. V tem vodiču boš izvedel vse, kar moraš vedeti o puščičnih funkcijah.

Pomembna spoznanja

  • Puščične funkcije ponujajo krajšo sintakso v primerjavi s običajnimi funkcijami.
  • Nimajo lastnega konteksta this, kar jih še posebej praktične naredi pri uporabi v povratnih klicih.
  • Odstranitev zavitih oklepajev in ukaza return postane mogoča, kadar funkcija vrne le en izraz.

Uvod v puščične funkcije

Puščične funkcije se običajno uporabljajo za pisanje kode bolj berljive in kompaktne. Namesto da pišeš function, lahko uporabiš novo sintakso za krajšo deklaracijo funkcije.

Pištole funkcij v JavaScriptu - Učinkovita raba

Za razumevanje, kaj so puščične funkcije, lahko tradicionalne funkcije dobro izhodišče. Če deklariraš funkcijo s ključno besedo function, je običajno nekoliko daljša in manj elegantna. Tukaj je primer standardne funkcije v JavaScriptu:

function doIt() { console.log("Doing it");
}

To je izhodišče, od katerega preidemo na puščične funkcije.

Korak 1: Deklariranje puščične funkcije

Namesto ključne besede function lahko preprosto postaviš parametre v oklepaje in nato uporabiš puščico, za katero sledi telo funkcije. Tako izgleda prejšnja funkcija kot puščična funkcija:

const doIt = () => { console.log("Doing it");
};

Kot vidiš, je sintaksa veliko bolj kompaktna. Po prvem poskusu preveri, ali funkcija pravilno deluje.

Korak 2: Uporaba puščičnih funkcij z nizi

Še ena velika prednost puščičnih funkcij je pri njihovi uporabi z nizi. Poglejmo primer. Recimo, da imaš niz števil in želiš najti položaj določene številke. Tukaj uporabljamo metodo findIndex, da najdemo indeks:

const numbers = [2, 3, 4, 5];
const index = numbers.findIndex((element) => element === 3);
console.log(index);

Puščična funkcija precej poenostavi berljivost kode in zmanjša potrebo po dodatni ključni besedi function.

Korak 3: Skrajšanje puščičnih funkcij

Če ima puščična funkcija le en izraz, lahko izpustiš zavitih oklepajev in besedo return. Tako izgleda, ko še bolj skrajšaš funkcijo findIndex:

const index = numbers.findIndex(element => element === 3);

To ni le krajše, ampak tudi bolj elegantno. Preizkusi funkcijo in preveri, ali še vedno pravilno deluje.

Korak 4: Obvladovanje ključne besede this

Ena izmed ključnih prednosti puščičnih funkcij je obravnava konteksta ključne besede this. V klasičnih funkcijah postane this pogosto nepredvidljiv, še posebej, če se funkcija uporablja kot povratni klic. Puščične funkcije pa povežejo this s kontekstom, v katerem so bile definirane.

Poglej si naslednji primer:

const obj = { text: "Besedilo", print: function() { console.log(this.text); }
};

obj.print(); // Izpiše "Besedilo"

Vendar če setTimeout uporabljaš s klasično funkcijo, se spremeni kontekst this:

setTimeout(function() { console.log(this.text);
}, 1000); // Izpiše undefined

Z uporabo puščične funkcije znotraj setTimeout dobiš enak rezultat kot pri klasični funkciji, vendar brez izgube konteksta:

setTimeout(() => { console.log(this.text);
}, 1000); // Izpiše "Besedilo"

Korak 5: Ohranjanje dodelitve konteksta this

Lahko tudi this povežeš z spremenljivko, da zagotoviš dostop do nje. Vendar se ta vzorec pogosto pokaže manj eleganten kot uporaba puščičnih funkcij.

const self = this;
setTimeout(function() { console.log(self.text);
}, 1000);

Prednosti puščičnih funkcij

  • So krajše in bolj elegantne v primerjavi s tradicionalno deklaracijo funkcij.
  • Nimajo lastnega konteksta this, kar poenostavi uporabo v povratnih klicih.
  • Sintaksa ti omogoča, da zelo berljivo oblikuješ kodo.

Povzetek

Puščične funkcije ponujajo priročen način za učinkovito deklaracijo JavaScript funkcij. Z novo sintakso se ne izboljša le berljivost, temveč se tudi znatno olajša upravljanje s kontekstom this. Puščične funkcije bi morali uporabljati predvsem v primerih, ko potrebuješ povratne klice ali krajše funkcionalne izraze.

Pogosto zastavljena vprašanja

Kaj so puščične funkcije?Puščične funkcije so krajša sintaksa za funkcije v JavaScriptu, ki so bile uvedene s ES6.

Kdaj naj uporabim puščične funkcije?Puščične funkcije bi morali uporabljati predvsem v primerih s povratnimi klici ali ko potrebujete anonimne funkcije.

Kakšne prednosti imajo puščične funkcije glede na kontekst this?Puščične funkcije povežejo this s kontekstom, kar pogosto preprečuje nepričakovano obnašanje pri običajnih funkcijah.