Closure๋ž€?

์†œ์ฃผ๋จนยท2022๋…„ 10์›” 11์ผ
0

ํ•ญํ•ด99

๋ชฉ๋ก ๋ณด๊ธฐ
13/37
post-thumbnail

๐Ÿ“– ํด๋กœ์ €(Closure)

๐Ÿ’ฌ ์ •์˜

  • ์™ธ๋ถ€ ํ•จ์ˆ˜์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด๋ถ€ ํ•จ์ˆ˜ ํ˜น์€ ์ด๋Ÿฌํ•œ ์›๋ฆฌ๋ฅผ ์ผ์ปซ๋Š” ์šฉ์–ด
  • ์Šค์ฝ”ํ”„์— ๋”ฐ๋ผ์„œ ๋‚ด๋ถ€ ํ•จ์ˆ˜์˜ ๋ฒ”์œ„์—์„œ๋Š” ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ๋ฒ”์œ„์— ์žˆ๋Š” ๋ณ€์ˆ˜์—
    ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ทธ ๋ฐ˜๋Œ€๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฐœ๋…
  • ํŠน์ง•์œผ๋กœ ์™ธ๋ถ€ ํ•จ์ˆ˜๋Š” ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด๋ถ€ ํ•จ์ˆ˜๊ฐ€
    ์†Œ๋ฉธํ•  ๋•Œ๊นŒ์ง€ ์†Œ๋ฉธ๋˜์ง€ ์•Š๋Š”๋‹ค

โ— ์˜ˆ์‹œ

  • ์˜ˆ์‹œ๋ฅผ ๋ณด๋ฉด ๊ทธ๋‚˜๋งˆ ์กฐ๊ธˆ ์ดํ•ด์— ๋„์›€์ด ๋จ
function makeFunc() {
  var name = "์ด๋ฆ„์ž„๋‹ค";
  function displayName() {
    console.log(name);
  }
  return displayName;
}

//myFunc๋ณ€์ˆ˜์— displayName์„ ๋ฆฌํ„ดํ•จ
var myFunc = makeFunc();

//๋ฆฌํ„ด๋œ displayName ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰(name ๋ณ€์ˆ˜์— ์ ‘๊ทผ)
myFunc(); // "์ด๋ฆ„์ž„๋‹ค" ์ฝ˜์†” ์ถœ๋ ฅ

+์˜ˆ์‹œ ํ•ด์„

  • ์ผ๋ฐ˜์ ์œผ๋กœ๋Š” ํ•จ์ˆ˜ ์•ˆ์˜ ์ง€์—ญ ๋ณ€์ˆ˜๋“ค์€ ๊ทธ ํ•จ์ˆ˜๊ฐ€ ์ฒ˜๋ฆฌ๋˜๋Š” ๋™์•ˆ์—๋งŒ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—displayName ํ•จ์ˆ˜๊ฐ€ ๋ฆฌํ„ด๋˜๋ฉด name๋ณ€์ˆ˜์— ์ ‘๊ทผ ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์˜ˆ์ƒ๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•  ๋•Œ, ํด๋กœ์ €๋ฅผ ํ˜•์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํด๋กœ์ €๊ฐ€ ํ˜•์„ฑ๋  ๋‹น์‹œ์˜ ํ•จ์ˆ˜์™€ ํ•จ์ˆ˜๊ฐ€ ์„ ์–ธ๋œ ์–ดํœ˜์  ํ™˜๊ฒฝ์˜ ์กฐํ•ฉ(์‰ฝ๊ฒŒ ๋งํ•ด ๋‹น์‹œ์˜ ๊ด€๊ณ„๋˜๋Š” ์ฝ”๋“œ๋“ค)์˜ ์ฐธ์กฐ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.(์ฆ‰, ๊ธฐ์–ตํ•œ๋‹ค.)

๊ฐ€์žฅ ์–ด๋ ค์šด ๊ฐœ๋…์ด์—ˆ๋‹ค... ์ง€๊ธˆ๋„ ์ดํ•ด๋Š” ํ–ˆ์ง€๋งŒ ๋ง๋กœ ์„ค๋ช…ํ•˜๊ธฐ ์–ด๋ ค์›Œ..

๐Ÿ’ก ๋‹ต๋ณ€

Closure๋ž€?

์Šค์ฝ”ํ”„์— ๋”ฐ๋ผ์„œ ๋‚ด๋ถ€ ํ•จ์ˆ˜์˜ ๋ฒ”์œ„์—์„œ๋Š” ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ๋ฒ”์œ„์— ์žˆ๋Š” ๋ณ€์ˆ˜์— 
์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๊ทธ ๋ฐ˜๋Œ€๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฐœ๋…์ž…๋‹ˆ๋‹ค.
ํŠน์ง•์œผ๋กœ ์™ธ๋ถ€ ํ•จ์ˆ˜๋Š” ์™ธ๋ถ€ ํ•จ์ˆ˜์˜ ์ง€์—ญ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด๋ถ€ ํ•จ์ˆ˜๊ฐ€
์†Œ๋ฉธํ•  ๋•Œ๊นŒ์ง€ ์†Œ๋ฉธ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ๋กœ ์™ธ๋ถ€ ํ•จ์ˆ˜์— name์ด๋ผ๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚ด๋ถ€ ํ•จ์ˆ˜์— ๋„ค์ž„์„
์ฝ˜์†”๋กœ ์ถœ๋ ฅํ•˜๊ฒŒ๋”ํ•˜๊ณ  ์™ธ๋ถ€์—์„œ ๋‚ด๋ถ€ํ•จ์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด ํด๋กœ์ €๊ฐ€ ํ˜•์„ฑ๋˜์–ด
๋‹น์‹œ์˜ ํ•จ์ˆ˜์™€ ๊ด€๊ณ„๋˜๋Š” ์ฝ”๋“œ๋“ค์˜ ์ฐธ์กฐ๋ฅผ ์œ ์ง€ํ•˜์—ฌ ์ฝ˜์†”์— name ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€