Ten fragment kodu w JavaScript to klasyczny przykład funkcji strzałkowej, czyli tzw. arrow function. To funkcja zdefiniowana w bardzo nowoczesny, oszczędny sposób, który pojawił się wraz z ES6 (ECMAScript 2015). Taki zapis pozwala na szybkie tworzenie prostych funkcji anonimowych, bez potrzeby używania słowa kluczowego 'function'. Ma to ogromne znaczenie np. przy pracy z wyrażeniami funkcyjnymi, callbackami albo wszędzie tam, gdzie liczy się zwięzłość kodu. Samo 'let modulo = (x, y) => x % y;' oznacza, że tworzymy zmienną 'modulo', która przechowuje funkcję przyjmującą dwa argumenty i od razu zwracającą resztę z dzielenia x przez y. Co ciekawe, funkcje strzałkowe różnią się od tradycyjnych tym, że nie mają własnego kontekstu this (dziedziczą go z otoczenia). To jest bardzo przydatne np. przy pracy w metodach klas lub obiektach, gdzie nie chcemy nieoczekiwanej zmiany kontekstu. Moim zdaniem warto nawykowo korzystać z tej składni, bo kod robi się dużo czytelniejszy i łatwiejszy w utrzymaniu. W różnych frameworkach (np. React) funkcje strzałkowe są wręcz codziennością – definiuje się tak np. proste event handlery czy filtry. No i jeszcze jedno: taka funkcja jest idealna, gdy chcemy przekazać logikę w jednym krótkim wyrażeniu bez robienia bałaganu w kodzie.
Wiele osób rozpoczynających naukę JavaScript często myli różne elementy składni, szczególnie gdy pojawiają się nowoczesne rozwiązania pochodzące z nowszych wersji języka. Cofnijmy się do analizy dostępnych odpowiedzi. 'Prototyp metody klasy' to termin odnoszący się do programowania obiektowego w JavaScript, gdzie metody są przypisywane do właściwości prototype konstruktora klasy, co pozwala wszystkim instancjom korzystać ze wspólnej implementacji. Jednak w tym przypadku nie mamy tu żadnej klasy, ani jawnego prototype, tylko zwykłą funkcję przypisaną do zmiennej. To zupełnie inny mechanizm. Następnie 'definicja zmiennej typu tablicowego' – to bardzo częste nieporozumienie. W JavaScript tablice tworzy się za pomocą nawiasów kwadratowych [], np. let arr = [1,2,3]. W podanym kodzie nie widać takiej składni, więc nie ma tu mowy o tablicy. Często myli się to, bo argumenty funkcji są czasem brane za elementy tablicy, ale to tylko parametry funkcji. Natomiast 'prototyp interfejsu' – to raczej pojęcie ze świata TypeScript lub programowania silniej typowanego (np. Java, C#). W czystym JavaScript nie istnieje coś takiego jak interfejs w sensie typów i ich prototypów. To może wynikać z mylenia pojęć, bo JavaScript ma prototypowe dziedziczenie, ale nie ma formalnych interfejsów. Moim zdaniem, takie nieporozumienia biorą się z mieszania terminologii pochodzącej z różnych paradygmatów programowania. W podanym przykładzie kluczowe jest zauważenie, że mamy do czynienia z funkcją strzałkową, która została wprowadzona, żeby upraszczać składnię i podnieść czytelność kodu. To nie jest ani metoda klasy, ani tablica, ani interfejs – po prostu nowoczesny sposób na definiowanie funkcji.