
π JavaScript μ½λ°± ν¨μ (Callback Function)
μλ°μ€ν¬λ¦½νΈλ₯Ό λ°°μ°λ€ 보면 μ½λ°± ν¨μ(Callback function)λΌλ μ©μ΄λ₯Ό μμ£Ό μ νλ€.
μ΄ κ°λ μ λ¨μνλ©΄μλ μλ°μ€ν¬λ¦½νΈμ λΉλκΈ° μ²λ¦¬, μ΄λ²€νΈ νΈλ€λ§, ν¨μν νλ‘κ·Έλλ° κ°μ λ€μν λΆμΌμμ ν΅μ¬μ΄ λκΈ° λλ¬Έμ
μ΄λ² ν¬μ€ν μμλ μ½λ°± ν¨μκ° λ¬΄μμΈμ§, μ νμνμ§, κ·Έλ¦¬κ³ μ€μ λ‘ μ΄λ»κ² νμ©ν μ μλμ§λ₯Ό μμ μ ν¨κ» μ 리ν΄λ³΄λ €κ³ νλ€.
π₯ μ½λ°± ν¨μλ
μ½λ°± ν¨μλ μμ μ΄ μλ λ€λ₯Έ ν¨μμ μΈμλ‘ μ λ¬λμ΄ μ€νλλ ν¨μλ₯Ό λ§νλ€.
function main(value){
value(); // μ λ¬λ°μ ν¨μλ₯Ό μ€ν
}
function sub() {
console.log("sub");
}
main(sub); // sub ν¨μκ° main ν¨μμ μ λ¬λμ΄ μ€νλ¨
μμ μ½λμμ sub ν¨μλ main ν¨μμ μΈμλ‘ μ λ¬λμκ³ , main ν¨μ μμμ νΈμΆλμλ€.
λ°λΌμ subμ μ½λ°± ν¨μκ° λλ€.
π§ μ½λ°± ν¨μκ° νμν μ΄μ
λ§μ½ μ½λ°±μ μ¬μ©νμ§ μλλ€λ©΄, κ°μ λμμ νλ ν¨μκ° μ€λ³΅λμ΄ μ겨λ²λ¦°λ€.
ꡬ체μ μΌλ‘ μλ₯Ό λ€λ©΄ μλμ κ°λ€.
function repeat(count) {
for (let idx = 1; idx <= count; idx++) {
console.log(idx);
}
}
function repeatDouble(count) {
for (let idx = 1; idx <= count; idx++) {
console.log(idx * 2);
}
}
repeat(5); // 1, 2, 3, 4, 5
repeatDouble(5); // 2, 4, 6, 8, 10
κ·Έλ°λ° μ΄ μ½λμμμ λ¬Έμ λ repeatμ repeatDoubleμ΄ κ±°μ λκ°μ λ‘μ§μ κ°κ³ μλ€λ μ μ΄λ€.
λ¨μ§ μμμ μΆλ ₯νλ λ΄μ©λ§ μ‘°κΈ λ€λ₯Ό λΏμΈλ°, μ½λκ° μ€λ³΅λμ΄ λ²λ¦°λ€.
κ·Έλ°λ° μ΄λ΄ λ μ½λ°± ν¨μλ₯Ό νμ©νλ©΄, μ€λ³΅μ μμ κ³ λ μ μ°ν ν¨μλ₯Ό λ§λ€ μ μλ€.
function repeat(count, callback) {
for (let idx = 1; idx <= count; idx++) {
callback(idx); // μ λ¬λ°μ ν¨μ μ€ν
}
}
repeat(5, function (idx) {
console.log(idx * 2); // 2λ°° μΆλ ₯
});
repeat(5, function (idx) {
console.log(idx * 3); // 3λ°° μΆλ ₯
});
κ·Έλ¦¬κ³ μλμ κ°μ΄ νμ΄ν ν¨μκΉμ§ κ°μ΄ νμ©ν΄μ£Όλ©΄ λμ± κ°κ²°ν΄μ§λ€.
function repeat(count, callback) {
for (let idx = 1; idx <= count; idx++) {
callback(idx); // μ λ¬λ°μ ν¨μ μ€ν
}
}
repeat(5, (idx) => {
console.log(idx * 2); // 2λ°° μΆλ ₯
});
repeat(5, (idx) => {
console.log(idx * 3); // 3λ°° μΆλ ₯
});
π κ²°λ‘
μ½λ°± ν¨μλ μ²μμ "ν¨μ μμ λ λ€λ₯Έ ν¨μλ₯Ό λ£μ΄ μ€ννλ€"λ μ€λͺ λλ¬Έμ μ΄λ ΅κ² λκ»΄μ‘λλ°,
μ€μ λ‘ μ½λλ₯Ό λ°λΌκ°λ€ 보λ μκ°λ³΄λ€ λ¨μνλ€λ κ²μ μκ² λμλ€.
νΉν μ΄λ²μ μ΄ν΄λ³Έ μμ μ½λμμ μ«μλ₯Ό μ΄λ»κ² μΆλ ₯ν μ§λΌλ λμμ μ§μ μ½λλ‘ λ£λ λμ μ
κ·Έ λμμ ν¨μλ‘ λ§λ€μ΄ μ λ¬νλ κ³Όμ μμ μ½λ°± ν¨μλΌλ κ²μ 'λμμ λ§€κ°λ³μλ‘ μ λ¬νλ λ°©λ²'μ΄λΌκ³ μ΄ν΄νκ² λμλ€.
μμΌλ‘λ map, filter, forEach κ°μ μλ°μ€ν¬λ¦½νΈ λ°°μ΄ λ©μλλ μ΄λ²€νΈ μ²λ¦¬ μ½λλ₯Ό λ³Ό λ
'μ μ¬κΈ°μ μ΄ ν¨μκ° μ½λ°±μΌλ‘ λμ΄κ°λꡬλ' νκ³ μμ°μ€λ½κ² μ΄ν΄ν μ μμ κ² κ°λ€ ππ
'π»κ³΅λΆ κΈ°λ‘ > π 리μ‘νΈ κΈ°μ΄ μ€ν°λ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript μ€μ½ν μ²΄μΈ (Scope Chain) (0) | 2025.09.23 |
|---|---|
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript μ€μ½ν(scope) (0) | 2025.09.23 |
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScriptμ μμ±μ ν¨μ λμ κ³Όμ (2) | 2025.09.20 |
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript ν¨μ μ¬ν (0) | 2025.09.20 |
| [리μ‘νΈ κΈ°μ΄ μ€ν°λ] JavaScript ν¨μμ νΈμ΄μ€ν (1) | 2025.09.19 |