EXECUTION CONTEXT
๋ณ์๋ ํจ์์ ์คํ ์ปจํ ์คํธ(execution context)๋ scope, hosting, this, function, closure ๋ฑ์ ๋์์๋ฆฌ๋ฅผ ๋ด๊ณ ์๋ ํต์ฌ์๋ฆฌ๋ก ๋ค๋ฅธ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋์ง, ์ด๋ป๊ฒ ํ๋ํ๋์ง๋ฅผ ๊ท์ ํ๋ค.
ECMAScript์ ๋ฐ๋ฅด๋ฉด ์คํ ์ปจํ ์คํธ๋ฅผ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ํ์ํํ๊ณ , ๊ตฌ๋ถํ๋ ์ถ์์ ์ธ ๊ฐ๋ ์ผ๋ก ์ฆ, ์คํ ์ปจํ ์คํธ๋ ์คํ ๊ฐ๋ฅํ ์ฝ๋๊ฐ ์คํ๋๊ธฐ ์ํด ํ์ํ ํ๊ฒฝ์ด๋ผ ๋งํ ์ ์๋ค.
์ ์ญ ์ฝ๋ : ์ ์ฒด ์์ญ์ ์กด์ฌํ๋ ์ฝ๋
eval ์ฝ๋ :
eval
ํจ์๋ก ์คํ๋๋ ์ฝ๋ํจ์ ์ฝ๋ : ํจ์ ๋ด์ ์กด์ฌํ๋ ์ฝ๋
์ผ๋ฐ์ ์ผ๋ก ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ ์ ์ญ ์ฝ๋์ ํจ์ ๋ด ์ฝ๋์ด๋ค.
์คํ์ ํ์ํ ์ ๋ณด
๋ณ์ : ์ ์ญ๋ณ์, ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๊ฐ์ฒด์ ํ๋กํผํฐ
ํจ์ ์ ์ธ
scope
this
์ ์ฝ๋๋ฅผ ์คํํ๋ฉด ์๋์ ๊ฐ์ด ์คํ ์ปจํ ์คํธ(stack)์ด ์์ฑํ๊ณ ์๋ฉธ๋๋ค. ํ์ฌ ์คํ ์ค์ธ ์ปจํ ์คํธ์ ์๊ด ์๋ ์ฝ๋(์๋ฅผ ๋ค์ด ๋ค๋ฅธ ํจ์)๊ฐ ์คํ๋๋ฉด ์๋ก์ด ์ปจํ ์คํธ๊ฐ ์์ฑ๋๋ค.
์ปจํธ๋กค์ด ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ก ์ด๋ํ๋ฉด ๋ ผ๋ฆฌ์ ์คํ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ ์คํ ์ปจํ ์คํธ ์คํ์ด ์์ฑ๋๋ค.
์ ์ญ ์ฝ๋(global code)๋ก ์ปจํธ๋กค์ด ์ง์ ํ๋ฉด ์ ์ญ ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ๋๊ณ ์คํ ์ปจํ ์คํธ ์คํ์ ์์ธ๋ค. ์ ์ญ ์คํ ์ปจํ ์คํธ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ข ๋ฃ๋ ๋(์น ํ์ด์ง์์ ๋๊ฐ๊ฑฐ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋ซ์๋)๊น์ง ์ ์ง๋๋ค.
ํจ์๋ฅผ ํธ์ถํ๋ฉด ํด๋น ํจ์์ ์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ๋๋ฉฐ ์ง์ ์ ์คํ๋ ์ฝ๋ ๋ธ๋ก์ ์คํ ์ปจํ ์คํธ ์์ ์์ธ๋ค.
ํจ์ ์คํ์ด ๋๋๋ฉด ํด๋น ํจ์์ ์คํ ์ปจํ ์คํธ๋ฅผ ํ๊ธฐํ๊ณ ์ง์ ์ ์คํ ์ปจํ ์คํธ์ ์ปจํธ๋กค์ ๋ฐํํ๋ค.
์คํ ์ปจํ ์คํธ๋ ํฌํจ๋ ์ฝ๋๊ฐ ๋ชจ๋ ์คํ๋ ๋ ํ๊ธฐ๋๋๋ฐ, ์ด๋ ํด๋น ์ปจํ ์คํธ ๋ด๋ถ์์ ์ ์๋ ๋ณ์์ ํจ์๋ ํจ๊ป ํ๊ดด๋๋ค.
์คํ ์ปจํ
์คํธ ๊ฐ์ฒด
์คํ ์ปจํ ์คํธ๋ ์คํ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ํ์ํํ๊ณ ๊ตฌ๋ถํ๋ ์ถ์์ ์ธ ๊ฐ๋ ์ด์ง๋ง ๋ฌผ๋ฆฌ์ ์ผ๋ก๋ ๊ฐ์ฒด์ ํํ๋ฅผ ๊ฐ์ง๋ค.
Variable Object ( VO ) ๋ณ์๊ฐ์ฒด
์คํ ์ปจํ ์คํธ๊ฐ ์์ฑ๋๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ์คํ์ ํ์ํ ์ฌ๋ฌ ์ ๋ณด๋ค์ ๋ด์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋๋ฐ ์ด๋ฅผ Variable Object๋ผ๊ณ ํ๋ค. Variable Object๋ ์ฝ๋๊ฐ ์คํ๋ ๋ ์์ง์ ์ํด ์ฐธ์กฐ๋๋ฉฐ ์ฝ๋์์๋ ์ ๊ทผํ ์ ์๋ค.
๋ณ์
๋งค๊ฐ๋ณ์(parameter)์ ์ธ์(arguments)
ํจ์ ์ ์ธ( ํจ์ ํํ์ ์ ์ธ )
์ ์ญ ์ปจํ
์คํธ
Variable Object๋ ์ ์ผํ๋ฉฐ ์ต์์์ ์์นํ๊ณ ๋ชจ๋ ์ ์ญ ๋ณ์, ์ ์ญ ํจ์ ๋ฑ์ ํฌํจํ๋ ์ ์ญ ๊ฐ์ฒด(Global Object )๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ ์ญ ๊ฐ์ฒด๋ ์ ์ญ์ ์ ์ธ๋ ์ ์ญ ๋ณ์์ ์ ์ญ ํจ์๋ฅผ ํ๋กํผํฐ๋ก ์์ ํ๋ค.
ํจ์ ์ปจํ
์คํธ
Variable Object๋ ํ์ฑ ๊ฐ์ฒด(Activation Object)๋ฅผ ๊ฐ๋ฆฌํค๋ฉฐ ๋งค๊ฐ ๋ณ์์ ์ธ์๋ค์ ์ ๋ณด๋ฅผ ๋ฐฐ์ด์ ํํ๋ก ๋ด๊ณ ์๋ ๊ฐ์ฒด์ธ arguments object๊ฐ ์ถ๊ฐ๋๋ค.
Scope Chain
Scope Chain์ ์ผ์ข ์ ๋ฆฌ์คํธ๋ก ์ ์ญ ๊ฐ์ฒด์ ์ค์ฒฉ๋ ํจ์์ ์ค์ฝํ์ ๋ ํผ๋ฐ์ค๋ฅผ ์ฐจ๋ก๋ก ์ ์ฅํ๊ณ ์๋ค. ์ฆ, ์ค์ฝํ ์ฒด์ธ์ ์ ์ญ ๊ฐ์ฒด( GO) ํน์ ํ์ฑ ๊ฐ์ฒด(AO)์ ๋ฆฌ์คํธ๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
์ฐธ์กฐ ํ์ด์ง
Last updated