๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝœ๋ฐฑ (Call back) ํ•จ์ˆ˜

์‹œํ๋ฆฌํ‹ฐ์ง€ํ˜ธ 2023. 11. 27.

๊ธฐ๋ณธ ์ ์œผ๋กœ ํ•จ์ˆ˜๊ฐ€ ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ๋“ค์–ด ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์ด๋‹ค. ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ด์ „ ๋จผ์ € ์ˆ˜ํ–‰ํ•  ๊ฒƒ์„ ํ•˜๊ณ  ๋‹ค์‹œ ์ž๊ธฐ๊ฒƒ์œผ๋กœ ๋Œ์•„์™€ ๋งˆ์ € ์ง„ํ–‰ํ•œ๋‹ค.

 

์ด๋ฅผ ๋น„๋™๊ธฐ์  ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ˆœ์ฐจ์ ์œผ๋กœ ์ผ์–ด๋‚˜์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

//์ฝœ๋ฐฑ ํ•จ์ˆ˜ - ๊ธฐ๋ณธ
// Hello jiho ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜ greeting
function greeting(name) {
console.log(`Hello ${name}`);
}
//greeting์„ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ๋ณ€๊ฒฝ
//const greeting = () => console.log(`Hello ${name}`);
//greeting('jiho');

function processUserInput(name, callbackFunction) {
callbackFunction(name);
}

processUserInput('jiho', greeting);

// ํ•จ์ˆ˜ 2๊ฐœ ๊ตฌํ˜„
// 1. ์ฟ ํŒก์—์„œ ์‚ฌ๊ณผ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ํ•จ์ˆ˜ waitCoupang(appleBox, callback)
// ํ•จ์ˆ˜์˜ ๋™์ž‘: '์ฟ ํŒก์—์„œ ${appleBox}๊ฐ€ ๋„์ฐฉํ–ˆ๋‹ค'๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜

// 2. bringItToNeighbor(๋ณ„๋„์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ์—†์Œ)
// ํ•จ์ˆ˜์˜ ๋™์ž‘: '์˜†์ง‘ ์•„์ฃผ๋จธ๋‹ˆ์—๊ฒŒ ์ „๋‹ฌ ์™„๋ฃŒ'๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜

function bringItToNeighbor() {
console.log("์˜†์ง‘ ์•„์ฃผ๋จธ๋‹ˆ์—๊ฒŒ ์ „๋‹ฌ ์™„๋ฃŒ");
}

function waitCoupang(appleBox, callback) {
console.log(`์ฟ ํŒก์—์„œ ${appleBox}๊ฐ€ ๋„์ฐฉํ–ˆ๋‹ค.`);
callback();
}

waitCoupang('์‚ฌ๊ณผ', bringItToNeighbor);

const callBack = number => console.log(number);
numbers.forEach(callBack);

 

 

๋™๊ธฐ์  ๋ฐฉ์‹ : ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

 

๋น„๋™๊ธฐ์  ๋ฐฉ์‹ : ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰ ๋˜์ง€ ์•Š๊ณ  ํŠน์ •ํ•œ ๊ฒƒ์„ ๋จผ์ € ๋๋‚ด๊ณ  ๊ทธ ๋‹ค์Œ ์ง„ํ–‰ํ•˜์—ฌ ์ˆœ์ฐจ์ ์œผ๋กœ ์ง„ํ–‰๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ์˜๋ฏธ

๋Œ“๊ธ€