closure
-
[Javascript] ํด๋ก์ ธ์ฌ๋ถ์์ฌ๋ถ์/Javascript 2022. 3. 29. 14:44
#๋ชจ๋์๋ฐ์คํฌ๋ฆฝํธ_๋ฅ๋ค์ด๋ธ ์คํฐ๋๋ฅผ ์งํํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค. ๋ ์์ปฌ ์ค์ฝํ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํจ์๋ฅผ ์ด๋์ ํธ์ถํ๋์ง๊ฐ ์๋๋ผ ํจ์๋ฅผ ์ด๋์์ ์ ์ํ๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ๋ฅผ ๊ฒฐ์ ํ๋ค. ์ด๋ฅผ ๋ ์์ปฌ ์ค์ฝํ(์ ์ ์ค์ฝํ)๋ผ๊ณ ํ๋ค. const x = 1; function foo() { const x = 10; bar(); } function bar() { console.log(x); } foo(); // ? bar(); // ? ์ ์์ ์์ bar ํจ์์ ๊ฒฐ๊ณผ ๊ฐ์ 10์ด ์๋๋ผ 1์ด๋ค. ์ด๊ฒ์ ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ด ๋ ์์ปฌ ์ค์ฝํ๋ฅผ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค. ๋ ์์ปฌ ํ๊ฒฝ์ ์ธ๋ถ ๋ ์์ฝ ํ๊ฒฝ์ ๋ํ ์ฐธ์กฐ์ ์ ์ฅํ ๊ฐ, ์ฆ ์์ ์ค์ฝํ์ ๋ํ ์ฐธ์กฐ๋ ํจ์ ์ ์๊ฐ ํ๊ฐ๋๋ ์์ ์ ํจ์๊ฐ ์ ์๋ ํ๊ฒฝ(์์น)์ ์ํด ..