ํด๋ก์ ๋ ์ด๋ค ํจ์์์ ์ ์ธํ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ ๋ด๋ถ ํจ์๋ฅผ ์ธ๋ถ๋ก ์ ๋ฌํ ๊ฒฝ์ฐ, ํจ์์ ์คํ ์ปจํ ์คํธ๊ฐ ์ข ๋ฃ๋ ํ์๋ ํด๋น ๋ณ์๊ฐ ์ฌ๋ผ์ง์ง ์๋ ํ์์ด๋ค. ๋๋, "์ด๋ค ํจ์์์ ์ ์ธํ ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ ๋ด๋ถ ํจ์์์๋ง ๋ฐ์ํ๋ ํ์"์ด๋ผ๊ณ ๋ ํ ์ ์๋ค.
var outer = function () {
var a = 1;
var inner = function () {
console.log(++a);
};
inner();
};
outer(); // 2์์ ์์ ์์ inner ํจ์ ๋ด๋ถ์์๋ a๋ผ๋ ์ง์ญ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ค. ์ง์ญ๋ณ์๋ฅผ ์ฐธ์กฐํ๋ ๋ด๋ถํจ์๋ฅผ ์ธ๋ถ์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ํด๋ก์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ ์ ์๋ค.
- ์ฝ๋ฐฑ ํจ์ ๋ด๋ถ์์ ์ธ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ ๋
- ์ ๋ณด ์๋์ ์ํด -> ์ธ๋ถ์ ์ ๊ณตํ๊ณ ์ ํ๋ ์ ๋ณด๋ค์ ๋ชจ์์ returnํ๊ณ , ๋ด๋ถ์์๋ง ์ฌ์ฉํ ์ ๋ณด๋ค์ returnํ์ง ์๋ ๊ฒ์ผ๋ก ์ ๊ทผ ๊ถํ ์ ์ด๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋ถ๋ถ ์ ์ฉ ํจ์ -> ๋ฏธ๋ฆฌ ์ผ๋ถ ์ธ์๋ฅผ ๋๊ฒจ๋์ด ๊ธฐ์ตํ๊ฒ๋ ํ๊ณ , ์ถํ ํ์ํ ์์ ์ ๊ธฐ์ตํ๋ ์ธ์๋ค๊น์ง ํจ๊ป ์คํํ๊ฒ ํ๋ค.
- ์ปค๋ง ํจ์
- ์ฝ์ด ์๋ฐ์คํฌ๋ฆฝํธ(์ฑ )