๐Ÿ“Œ javascript ๊ฐœ๋… #8 ์ฝœ๋ฐฑํ•จ์ˆ˜

์ฝœ๋ฐฑํ•จ์ˆ˜

์ฝœ๋ฐฑํ•จ์ˆ˜๋ž€ ?

-> ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ถˆ๋ ค์ง€๋Š” ํ•จ์ˆ˜
-> ํŠน์ • ์ด๋ฒคํŠธ์— ์˜ํ•ด ํ˜ธ์ถœ๋˜๋Š” ํ•จ์ˆ˜
-> ๋‹ค๋ฅธ ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ์จ ๋„˜๊ฒจ์ฃผ๋Š” ์‹คํ–‰๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ


์ฝœ๋ฐฑํ•จ์ˆ˜๋ฅผ ์„ค๋ช…ํ•œ ๊ทธ๋ฆผ


callback์˜ ์ผ๋ฐ˜์  ์˜ˆ์‹œ

function div(x, y) {
  return x / y;
}
function calculator(callback, x, y) {
  return callback(x, y);
}

console.log(calculator(div, 7, 3)); 
// 2.3333333333333335

๋˜ ๋‹ค๋ฅธ ์˜ˆ

function ask(question, yes, no) {
  if (confirm(question)) yes()
  else no();
}

function showOk() {
  alert( "๋™์˜" );
}

function showCancel() {
  alert( "์ทจ์†Œ" );
}


ask("๋™์˜", showOk, showCancel);
// ํ•จ์ˆ˜ showOk์™€ showCancel๊ฐ€ ask ํ•จ์ˆ˜์˜ ์ธ์ˆ˜๋กœ ์ „๋‹ฌ๋จ

์—ฌ๊ธฐ์„œ ๋ณด๋ฉด ๋” ์ดํ•ด๊ฐ€ ์ž˜ ๋˜๋Š”๋ฐ, ํ•œ๋งˆ๋””๋กœ ์ฝœ๋ฐฑํ•จ์ˆ˜๋Š” ๋ฏธ๋ฆฌ ๋งŒ๋“ค์–ด๋†“๊ณ  ๊ฐ€์ ธ๋‹ค ์“ด๋‹ค๊ณ  ์ดํ•ดํ•˜๋ฉด ํŽธํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” showOk, showCancel๋ฅผ ์ฝœ๋ฐฑํ•จ์ˆ˜๋ผ๊ณ  ํ•œ๋‹ค.

์ฆ‰, ํ•จ์ˆ˜๋ฅผ ํ•จ์ˆ˜์˜์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•˜๊ณ  ์ธ์ˆ˜๋กœ ์ „๋‹ฌํ•œ ํ•จ์ˆ˜๋ฅผ ๋‚˜์ค‘์— ํ˜ธ์ถœ (callback)ํ•˜๋Š” ๊ฒƒ์ด ์ฝœ๋ฐฑํ•จ์ˆ˜์˜ ๊ฐœ๋…์ด๋‹ค.

์œ„์—์„œ๋Š” yes() ์ž๋ฆฌ์— showOk ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ , no() ์ž๋ฆฌ์— showCancel ํ•จ์ˆ˜๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ