[JavaScript] κ³ μ°¨ν¨μ
κ³ μ°¨ν¨μλ ν¨μλ₯Ό κ°μΌλ‘ λ€λ£¨λ ν¨μμ΄λ€.
ν¨μλ₯Ό μΈμλ‘ λ°μμ μ€ννλ ν¨μλ€μ μ΄ν΄λ³΄μ.
const funcAdd = f => f(1);
const add10 = a => a + 10;
console.log(funcAdd(add10));
μ funcAdd ν¨μλ console.logμμ μΈμλ‘ add10ν¨μλ₯Ό λ°λλ€.
λΉμ°νκ² κ²°κ³Όλ 11λ‘ μμν μ μλ€.
ν¨μλ₯Ό λ§λ€μ΄ 리ν΄νλ κ²½μ°λ μλ€. μ΄λ° κ²½μ°λ₯Ό ν΄λ‘μ λ₯Ό λ§λ€μ΄ 리ν΄νλ ν¨μλΌκ³ λ§νλ€.
ν¨μκ° ν¨μλ₯Ό λ§λ€μ΄μ 리ν΄ν λλ κ²°κ΅μ ν΄λ‘μ λ₯Ό λ§λ€μ΄μ 리ν΄νκΈ° μν΄ μ¬μ©νλ€.
μλ μμλ₯Ό νμΈν΄λ³΄μ, μ°λ¦¬κ° μ¨λ³΄μ§ λͺ»ν λλμ arrow Func λ‘ μ νμλ€.
const add = a => b => a + b;
const add10 = add(10);
μ add10μ consoleλ‘ μ°μ΄λ³΄λ©΄
b => a + bκ° λ¦¬ν΄λλ€.
κ·Έλ¬λ add10 ν¨μμμ νμ¬ aκ°μ 10μΌλ‘ μ μλμ΄ μκΈ°μ aλ ν΄λ‘μ λ‘ λμνλ€. aμ κ°μ νμ 10μΌλ‘ κΈ°μ΅λλλ‘ ν΄λ‘μ κ° λ§λ€μ΄μ Έ μλ€.
const add = a => b => a + b;
const add10 = add(10);
console.log(add10(5));
console.log(add10(10));
μ κ²°κ³Όλ λΉμ°ν 15, 20μ΄ μΆλ ₯λλ κ±Έ νμΈν μ μλ€.
arrow funcμ΄ ν ν¨μμ μ°μμΌλ‘ μ¬λ¬κ° μ μλμ΄ μμΌλ©΄ κ·Έλ₯ κ°λ¨νκ² ν΄λ‘μ λ‘ λμνκΈ° μν ν¨μλΌλ μ΄ν΄νκ³ λμ΄κ°μ!