
โ ์คํ ์ปจํ ์คํธ
์ฝ๋๊ฐ ์คํ๋ ๋ JavaScript ์์ง์ ์คํ ์ปจํ
์คํธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์, ๊ฑฐ๊ธฐ์ ์ด ์ฝ๋๊ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ค.
์ด ์ ๋ณด์๋ this, ๋ณ์, ํจ์ ์ ์ธ, ์ธ๋ถ ํ๊ฒฝ ์ ๋ณด ๋ฑ์ด ํฌํจ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์คํ ์ปจํ ์คํธ๋ LexicalEnvironment ์ปดํฌ๋ํธ์ VariableEnvironment ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋๋ค.
โ LexicalEnvironment vs VariableEnvironment
LexicalEnvironment (ํ์ฌ๋ ์ด๊ฒ๋ง ์ฐ์)
- ๋ง ๊ทธ๋๋ก "์ดํ์ ํ๊ฒฝ".
=> ์ฝ๋๊ฐ ์ ์ธ๋ ์์น์ ๋ฐ๋ผ ์ด๋ค ๋ณ์์ ์ ๊ทผํ ์ ์๋์ง๋ฅผ ๊ฒฐ์ . - ๋ณ์์ ์ ์ธ๊ณผ ์๋ณ์ ๊ฒ์์ ๋ด๋น.
- ํจ์ ์ ์ธ, ๋ณ์ ์ ์ธ, let, const ๋ฑ์ด ์ด ์์ ์ ์ฅ๋จ.
VariableEnvironment
- ๊ณผ๊ฑฐ์๋ var๋ก ์ ์ธ๋ ๋ณ์๋ฅผ ์ฌ๊ธฐ์ ๋ฐ๋ก ์ ์ฅํ์๋ค.
- ํ์ง๋ง ์ง๊ธ์ var๋ LexicalEnvironment์ ํตํฉ๋ผ์ ๊ด๋ฆฌ๋จ.
(์ฆ, VariableEnvironment๋ ๊ณผ๊ฑฐ ํธํ์ฑ ๋๋ฌธ์ ์กด์ฌ๋ง ํ๋ ์ํ)
โ ๋ ์์ปฌ ํ๊ฒฝ์ ๊ตฌ์ฑ ์ปดํฌ๋ํธ
1. Environment Record (ํ๊ฒฝ ๋ ์ฝ๋)
- ํ์ฌ ์ปจํ ์คํธ์์ ์ ์ธ๋ ๋ณ์/ํจ์๋ค์ ์ค์ ๋ก ์ ์ฅํ๋ ๊ฐ์ฒด์ผ.
- ๋ฑ ์ด ์ปจํ ์คํธ ์์์ ์ ์ธ๋ ์๋ณ์๋ค๋ง ๋ค์ด ์์.
2. Outer Lexical Environment Reference (์ธ๋ถ ๋ ์์ปฌ ํ๊ฒฝ์ ๋ํ ์ฐธ์กฐ)
- ํ์ฌ ํ๊ฒฝ์์ ์ฐพ์ง ๋ชปํ ์๋ณ์๋ฅผ ์ธ๋ถ์์ ์ฐพ๊ธฐ ์ํด ์ฐ๊ฒฐ๋๋ ๋งํฌ.
- ๋ถ๋ชจ ์ปจํ ์คํธ(์์ ์ค์ฝํ)์ LexicalEnvironment๋ฅผ ๊ฐ๋ฆฌํด.
โ ์ ๋ฆฌ
๐ง ๋น์ ๋ก ์ ๋ฆฌํด๋ณด์:
- LexicalEnvironment = ํ์ฌ ๋ฐฉ
- Environment Record = ๋ด ๋ฐฉ ์์ ์๋ ๋ฌผ๊ฑด(๋ณ์, ํจ์ ๋ฑ)
- OuterLexicalEnvironmentReference = ๋ด๊ฐ ์๋ ๊ฑด ์ ๋ฐฉ์์ ์ฐพ์๋ณด๋ผ๋ ๋ฌธ

'๐ ๋ชจ๋ฅ๋ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 31์ฅ. RegExp(์ ๊ท ํํ์) (3) | 2025.08.27 |
|---|---|
| 19์ฅ. prototype๊ณผ __proto__์ ์ฐจ์ด? (0) | 2025.05.06 |
| 17์ฅ. ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ (0) | 2025.02.28 |
| 16์ฅ. ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ (0) | 2025.02.28 |