๋ฐฐ๊ฒฝ Callback ํจํด์ ๋จ์ ๋ณด์ Callback ํ๋์ ํจ์๊ฐ ๊ฐ์ง๋ ๊ณตํต์ ์ธ ๋ก์ง์ ์ฌ๋ฌ๋ฒ ํ์ฉํ๊ธฐ ์ํด, ๊ณตํต ๋ก์ง์ ์ ์ํด ๋๊ณ , ๋ณ๊ฒฝ๋๋ ๋ก์ง์ ์ถ์ํํ์ฌ ํจ์ ์ธ๋ถ์์ ๋ด๋ถ๋ก ๋ก์ง์ ์ ๋ฌํ ํ์์ฑ ์๊น ํจ์์ ๋งค๊ฐ๋ณ์๋ก์จ ํจ์ (๋ณ๊ฒฝ๋๋ ๋ก์ง)๋ฅผ ์ด์ฉ
์ด์์ฒด์ ์์ ์์ฃผ ๋ฃ๋ ๋ง์ด๋ค.๋ฉํฐ ํ๋ก์ธ์ค, ์ค๋ ๋ ํ๋ก๊ทธ๋๋ฐ์์์ ๋๊ธฐํ, ์ ์ถ๋ ฅ์ ๋ฐ๋ฅธ ํ๋ก์ธ์ค์ waiting ๋ฑ์์ ๋ค์๋ค.ํ์ง๋ง JS์์์ ๋๊ธฐ์ ๋น๋๊ธฐ๋ ํ๋์ ์ค๋ ๋๊ฐ ํ๋์ ์ฝ๋๋ฅผ ์ฝ๋ ๋์, ๋ฐ์ํ๋ ์ํฉ์์์ ๊ฐ๋ ์ด๋ค.๊ทธ ์ด์ ๋ JS๋ ํ๋์ ์ค๋ ๋
ํด๋ก์ ๋ ํจ์์ ํจ์๊ฐ ์ ์ธ๋ lexical environment์ ์กฐํฉ์ด๋ค.๋ฌด์จ๋ง์ธ์ง ๋ชจ๋ฅด๊ฒ ๋ค.์ฐ์ lexical environment์ ๋ํด ์์๋ณผ ํ์๊ฐ ์๋ค.์๋ฐ์คํฌ๋ฆฝํธ ์์ง์ ํจ์๋ฅผ ์ด๋์ ํธ์ถํ๋์ง๊ฐ ์๋๋ผ, ์ด๋์ ์ ์ํ๋์ง์ ๋ฐ๋ผ ์์ ์ค์ฝํ๋ฅผ ๊ฒฐ์ ํ๋ค.
์ฐ๋ฆฌ๊ฐ ์ฌ๋ ์ค์ ์ธ๊ณ์๋ ์ด๋ค ์ค์ฒด๋ฅผ ์ธ์ํ๊ธฐ ์ํด, ๊ทธ ์ค์ฒด์ ํน์ง์ด๋ ์ฑ์ง์ ์ด์ฉํด ์ค์ฒด๋ฅผ ์ธ์ํ๊ณ ๊ตฌ๋ถํ๋ค. ์ด๋ฌํ ๊ฐ๋ ์ ํ๋ก๊ทธ๋๋ฐ์ ์ ๋ชฉํ์ฌ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ด๋ผ๋ ํจ๋ฌ๋ค์์ด ๋ง๋ค์ด์ก๋ค.์ด ๋, ํ๋์ ๊ฐ์ฒด๋ ๊ทธ ๊ฐ์ฒด์ ์ฑ์ง์ ๋ํ๋ด๋ ์ํ (proper
์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ด์ฉํ์ฌ ํธ๋ฆฌ์ traverse, searching ์ ๊ตฌํํด ๋ด ์๋ค.์ผ์ชฝ ๊ฐ์ง -> ํ์ฌ ๋ ธ๋ ๋ฐฉ๋ฌธ-> ์ค๋ฅธ์ชฝ ๊ฐ์ง ์์๋๋ก ๋ ธ๋๋ฅผ ๋ฐฉ๋ฌธํ๊ณ ์ถ๋ ฅ๊ตฌ์ฒด์ ์ผ๋ก, 1\. ํ์ฌ ๋ ธ๋์ ์ผ์ชฝ ๊ฐ์ง๊ฐ ์๋ค๋ฉด, ์ผ์ชฝ ๊ฐ์ง๋ก ํ์2\. ํ์ฌ ๋ ธ๋์ ์ผ์ชฝ ๊ฐ์ง๊ฐ ์๋ค๋ฉด
์ง๋ ๋ดํ๊ธฐ ๊ตฐ๋ณตํ ํ, ์ด์ด ์ข๊ฒ๋ ํ ํ์ฌ์ ๋ น์๊ณต์ฅ๐ฉ ์ธํด ๊ธฐํ๋ฅผ ์ก๊ฒ ๋์๋๋ฐ, ํ๋ก ํธ์๋์ ์์ ์ ๋ฐฑ์ค๋ ๋ถ์ผ๊น์ง ์ ๋ฌด๋ฅผ ๋งก๊ฒ ๋์๋ค.9์ ๋ฌ ๋ถํฐ ์ถ๊ทผ์ ์์ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ ์ฌ๋ฆ๋ฐฉํ ๋์ ์ค๋น๋ฅผ ํ๋ ค๊ณ ํ๋ค.๊ฑฐ์ ์ฒ์์ด๋ ๋ค๋ฆ์ด ์๋ค. ํ๊ต์์ ๊ณผ์ ๋ก s