View

์ž‘์„ฑ์ค‘๐Ÿ“์ •๋ฆฌํ•˜๊ธฐ!!๐Ÿ“

 

ํ•จ์ˆ˜๋Š” variable environment (VE)์— ์ ‘๊ทผํ•œ๋‹ค 
excution context๊ฐ€ ์ƒ์„ฑ๋œ ๋•Œ์—
์‹ฌ์ง€์–ด ๊ทธ EC๊ฐ€ ์‚ฌ๋ผ์ง„๋•Œ์—๋„

booker ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ ๋•Œ์— ์Šค์ฝ”ํ”„์— ์ •์˜๋˜์—ˆ๋‹ค. (๊ฐ•์˜ 136)
VE๋Š” ๊ณ„์† ์‚ด์•„์žˆ๋‹ค. ์—”์ง„์–ด๋”˜๊ฐ€์—

closure๋Š” ์Šค์ฝ”ํ”„์ฒด์ธ๋ณด๋‹ค ๋จผ์ €
์ž๊ธฐ๋“ค ํ•จ์ˆ˜ ์•ˆ์—์„œ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๋ณ€์ˆ˜๋ฅผ closure์—์„œ ๋จผ์ € ์ฐพ์ง€ scope chain์—์„œ ์ฐพ์ง€ ์•Š๋Š”๋‹ค. ๊ทธ ์ดํ›„์— ์ฐพ๋Š”๋‹ค.

closure: Variable Environment ๊ฐ€ ํ•จ์ˆ˜์— ๋ถ™์–ด์žˆ๋‹ค. 
์ •ํ™•ํžˆ ๊ทธ ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋œ ๊ทธ ๋•Œ์—
๊ทธ๋ž˜์„œ ๊ทธ๊ฑธ ๊ธฐ์–ตํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํด๋กœ์ €๋Š” ํ•จ์ˆ˜๊ฐ€ ์ ‘๊ทผํ• ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ๊ทธ ๋ถ€๋ชจ ํ•จ์ˆ˜๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” variable์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค. ์‹ฌ์ง€์–ด ๊ทธ ๋ถ€๋ชจ ํ•จ์ˆ˜๊ฐ€ return๋œ ์ดํ›„์—๋„
ํ•จ์ˆ˜๋Š” ๊ณ„์† ์ฐธ์กฐํ•œ๋‹ค. ์Šค์ฝ”ํ”„์ฒด์ธ์„ ์œ ์ง€(๋ณด์กด)ํ•˜๋Š” ๊ทธ outer scope๋ฅผ 

ํด๋กœ์ €๋Š” ํ•จ์ˆ˜๊ฐ€ "๊ทธ ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑ๋ ๋•Œ ์กด์žฌํ–ˆ๋˜ variables"์™€์˜ ์—ฐ๊ฒฐ์„ ์žƒ์ง€ ์•Š๊ฒŒ ํ•œ๋‹ค

์šฐ๋ฆฌ๋Š” manually ํด๋กœ์ €๋ฅผ ๋งŒ๋“ค ํ•„์š”๊ฐ€ ์—†๋‹ค.
์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ž๋™์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ํŠน์ง•์ด๋‹ค.
์šฐ๋ฆฌ๋Š” ํ•ด๋‹น variable์— ๋ช…์‹œ์ ์œผ๋กœ ์ ‘๊ทผ๋„ ํ•  ์ˆ˜ ์—†๋‹ค.
closure๋Š” ์•„๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์ธ/๋งŒ์ ธ์„œ ์•Œ ์ˆ˜ ์žˆ๋Š”(tangible).. ๊ทธ๋Ÿฐ object๊ฐ€ ์•„๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž๋„๊ตฌ console.dir(booker);
Scopes๊ฐ€ VE์ด๋‹ค
[[Scopes]]: Scopes[3]
0: Closure (secureBooking)
passengerCount: 3


[[]] ์ฝ”๋“œ๋กœ๋Š” ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” internal property

closure๋Š” argumentsํฌํ•จํ•œ๋‹ค -> ํ•จ์ˆ˜์•ˆ์—์„œ ์ง€์—ญ๋ณ€์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ

Share Link
reply
ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28