κ³ μ°¨ν¨μλ? ν¨μλ₯Ό μΈμ(argument)λ‘ λ°μ μ μκ³ , ν¨μμ ννλ‘ λ¦¬ν΄ν μ μλ ν¨μ
κ³ μ°¨ ν¨μλ ν¨μλ₯Ό μΈμλ‘ μ λ¬λ°κ±°λ ν¨μλ₯Ό κ²°κ³Όλ‘ λ°ννλ ν¨μλ₯Ό λ§νλ€.
κ³ μ°¨ν¨μλ μΈμλ‘ λ°μ ν¨μλ₯Ό νμν μμ μ νΈμΆνκ±°λ ν΄λ‘μ λ₯Ό μμ±νμ¬ λ°ννλ€.
μλ°μ€ν¬λ¦½νΈμ ν¨μλ μΌκΈ κ°μ²΄μ΄λ―λ‘ κ°μ²λΌ μΈμλ‘ μ λ¬ν μ μμΌλ©° λ°νν μλ μλ€.
π‘ 맀κ°λ³μλ?
βοΈ μΈμμ 맀κ°λ³μ μμ
function doubleNum(num) {
let result = num * 2
return result
}
doubleNum(2);
β μΈμλ => μ«μ 2 / 맀κ°λ³μλ => num
βοΈ κ³ μ°¨ν¨μ μμ
function back(num) {
return num * 2;
}
function doubleNum(func, num) {
return func(num);
}
doubleNum(back, 5);
β
λ€λ₯Έ ν¨μλ₯Ό μΈμλ‘ λ°κ³ μλ doubleNumμ κ³ μ°¨ν¨μμ
β
funcλ doubleNumμ μ½λ°±ν¨μμ
β
backμ doubleNumμ μ½λ°±ν¨μμ
μ½λ°±ν¨μλ? λ€λ₯Έ ν¨μμ μΈμλ‘ μ λ¬λλ ν¨μ
μ΄λ€ μμ μ΄ μλ£λμμ λ νΈμΆνλ κ²½μ°κ° λ§μ μ§μ΄μ§ μ΄λ¦
μ½λ°±ν¨μλ? μμ°¨μ μΌλ‘ ν¨μλ₯Ό μ€ννκ³ μΆμ λ μ¬μ©
μ½λ°±ν¨μλ κ·Έλ₯ ν¨μ λμμΈ ν¨ν΄μΌ λΏ
λκΈ°, λΉλκΈ°μλ μ‘°κΈ λ€λ¦
βοΈ μ½λ°±ν¨μ μμ (1)
function 첫째ν¨μ(ꡬλ©) {
console.log(1);
ꡬλ©();
}
function λμ§Έν¨μ() {
console.log(2);
}
첫째ν¨μ(λμ§Έν¨μ);
//consoleμλ 1 2 κ° μμ°¨μ μΌλ‘ μ°ν
βοΈ μ½λ°±ν¨μ μμ (2)
function 첫째ν¨μ(ꡬλ©) {
console.log(1);
ꡬλ©();
}
function λμ§Έν¨μ() {
console.log(2);
}
첫째ν¨μ(function(){
λμ§Έν¨μ(function(){
μ
μ§Έν¨μ(function(){
});
});
});
ν¨ν΄μ νκ³λλ¬Έμ μ½λ°± μ§μ₯μ΄ μκΉ.
π‘ κ°λ μ± λ¨μ΄μ§λ μ½λ°±ν¨μμ λ¬Έμ μ => λ μ½κ² μ°κΈ°μν Promise ν¨μ