Vyhledávání na webu

javascript - Jak funguje následující návratový příkaz ve funkcích


function greaterThan(n) {
  return m => m > n;
}

Snažím se pochopit, jak tato return instrukce funguje a co vlastně proměnná 'm' dělá.

Odpověď č. 1

greaterThan je funkce, která přijímá parametr n a vrací funkci, která přijímá parametr m. Vrácená funkce porovnává m a n a vrací boolean hodnotu.

např.

greaterThan(5)(4); // Returns false

Odpověď č. 2

Funkce greaterThan přijímá parametr n a vrací novou funkci, která přijímá parametr m a ta následně vrací true, pokud je argument předaný jako m větší než n;

Stejná metoda v kódu ES5:

function greaterThan(n) {
  return function(m) {
    return m > n
  }
}

var greaterThan5 = greaterThan(5); // This returns a function

// Call that function with a parameter to check if that is greater than 5

console.log(greaterThan5(10)); //true [n=5, m=10]
console.log(greaterThan5(1)); //false [n=5, m=1]

//Note: The newly created function will have `n` "fixed" as `5` because of how JS closures work

Užitečná reference:

Uzávěry v JavaScriptu

Šipkové funkce

JS funkce (a jak jsou v JS objekty první třídy)