Czy wzorzec „funkcja zwracająca funkcję” ma nazwę w JavaScript?


14

Często używam tego wzorca w JavaScript. Oto przykład:

const comments = [
  { text: 'Hello', id: 1 },
  { text: 'World', id: 4 },
];

const byId = id => element => element.id === id;

const comment = comments.find(byId(1));

Czasami ten wzorzec może sprawić, że nasz kod będzie czytelny i modułowy. Jak nazywa się ten wzór?

Odpowiedzi:


20

Nazywa się je funkcjami wyższego rzędu.

Funkcja wyższego rzędu to funkcja, która może przyjąć inną funkcję jako argument lub zwraca funkcję w wyniku. - Funkcje wyższego rzędu w JavaScript autorstwa M. Davida Greena


I kończy się zamknięcie.
Thomas Junk

3
JavaScript to język, w którym wszystkie funkcje są najwyższej klasy. Oznacza to, że możesz przekazywać je w zmiennych jak każda inna wartość. Zamknięcie to funkcja, która ma dostęp do otaczającego „zakresu leksykalnego”, w którym została zdefiniowana. Działa trochę tak, jak metody obiektów mają dostęp do zmiennych stanu obiektów.
candied_orange

3
W tym szczególnym przypadku rzuca 2 argumenty do 1.
949300,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.