ํธ์ด์คํ
environmentRecord์๋ ์๋ณ์ ์ ๋ณด๊ฐ ์ ์ฅ๋๋ค
์ฌ๊ธฐ์ ๋งํ๋ ์๋ณ์๋, ์๋์ ๊ฐ๋ค
- ์ปจํ์คํธ๋ฅผ ๊ตฌ์ฑํ๋ ํจ์์ ์ง์ ๋
๋งค๊ฐ๋ณ์ ์๋ณ์ ์ ์ธํ ํจ์ ๊ทธ ์์ฒดvar๋ก ์ ์ธ๋ ๋ณ์์ ์๋ณ์
JS์์ง์ ์ปจํ์คํธ ๋ด๋ถ ์ ์ฒด๋ฅผ ์ฒ์๋ถํฐ ๋๊น์ง ํ์ด๊ฐ๋ฉฐ ์์๋๋ก ์์งํ๋ค.
- ์์ง ์คํ ์ปจํ์คํธ์ ์ฝ๋๋ ์คํ๋์ง ์์ ์ํ์์ ์๋ณ์ ์ ๋ณด๋ฅผ ์์งํ๋ค.
- ๊ทธ๋ ๋ค๋ฉด,
JS์์ง์ ์๋ณ์๋ค์ ์ต์๋จ์ผ๋ก ๋์ด ์ฌ๋ ค ๋์ ๋ค์, ์ค์ ์ฝ๋๋ฅผ ์คํํ๋ค๋ผ๊ณ ์๊ฐํด๋ ๋ ๊ฒ์ด๋ค. - ์ฌ๊ธฐ์ ํธ์ด์คํ
์ด๋ผ๋ ๊ฐ๋
์ด ๋ฑ์ฅํ๋ค.
ํธ์ด์คํ ์ด๋ ๋์ด์ฌ๋ฆฌ๋ค๋ผ๋ ๋ป์ผ๋ก, JS์์ง์ ๋ณ์ ์ ๋ณด ์์ง๊ณผ์ ์ ์ค๋ช ํ๊ธฐ ์ํด ๋ฑ์ฅํ ๊ฐ์์ ๊ฐ๋ ์ด๋ค.
์ค์ ๋ก JS์์ง์ด ๋ฌด์ธ๊ฐ๋ฅผ ๋์ด์ฌ๋ฆฌ์ง ์์ง๋ง, ํธ์์ ๋์ด์ฌ๋ฆฐ ๊ฒ์ผ๋ก ๊ฐ์ฃผํ์๋ ๊ฒ์ด๋ค.
๋ณ์์ ๋ํ ํธ์ด์คํ
์๋ณธ ์ฝ๋: ์ถ๋ ฅ๊ฒฐ๊ณผ ์์ํ๊ธฐ
- 3์์ ๋ณ์ x๋ฅผ ๋ค์ ์ ์ธํ๋๊น 4์์ undefined๊ฐ ์ถ๋ ฅ๋์ง ์์๊น?
- ์คํฌ์ผ๋ฌ๋ฅผ ํ์๋ฉด, 1์ด ์ถ๋ ฅ๋๋๋ฐ, ์ด๋ ํธ์ด์คํ ๋๋ฌธ์ ๊ทธ๋ ๋ค.
- ํธ์ด์คํ ์ด ๋ฐ์ํ๋ฉด ์ด๋ค ์์ผ๋ก ์ฝ๋๊ฐ ์คํ๋๋์ง ์๋ฎฌ๋ ์ด์ ํด๋ณด์
ps: ์ค์ ๋ก ์๋์ ์ฝ๋์ฒ๋ผ ๋ณํ๋์ง ์๋๋ค.
๊ทธ๋ฅ ์ดํด๋ฅผ ๋๊ธฐ ์ํด์ ์ฝ๋๋ฅผ ์ ๋ ๊ฒ ๋ฐ๊พผ ๊ฒ ๋ฟ์ด๋ค.
์์ 2, ๋งค๊ฐ๋ณ์๋ฅผ ๋ณ์ ์ ์ธ/ํ ๋น๊ณผ ๊ฐ๋ค๊ณ ๊ฐ์ฃผํด์ ์ด๋ ๊ฒ ์์ฑํจ
- ์ปจํ์คํธ ์์ฑ ์์ ์ ๋ง๋๋ ์ ๋ณด ์ค์ arguments๋ ํฌํจ๋๋ค.
๋ฐ๋ผ์ ์ธ์๋ ํจ์ ๋ด๋ถ์ ๋ค๋ฅธ ์ฝ๋๋ณด๋ค ๋จผ์ ์ ์ธ ๋ฐ ํ ๋น์ด ์ด๋ค์ก๋ค
๊ทธ๋ ๋ค๋ฉด, ์์ ์ฝ๋์ฒ๋ผ ํํํ ์ ์๋ค. - ์ด ์ํ์์ ํธ์ด์คํ ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋ ๊น?
- environmentRecord๋ ํ์ฌ ์คํ ์ปจํ์คํธ์ ์ด๋ค ์๋ณ์๊ฐ ์๋์ง๋ง ๊ด์ฌ์๋ค. ์ด๋ค ๊ฐ์ด ํ ๋น๋ ์ง๋ ๊ด์ฌ ๋ฐ์ด๋ค.
- ๊ทธ๋ฌ๋ฏ๋ก, ๋ณ์๋ช ๋ง ๋์ด์ฌ๋ฆฌ๊ณ (ํธ์ด์คํ ), ๊ฐ์ ํ ๋น์ ์๋ ์๋ฆฌ์ ๊ทธ๋๋ก ๋จ๊ฒจ๋๋ค.
์์ 3, ํธ์ด์คํ ์ ํํํ ์ํ
- 2์์ ๋ณ์ x๋ฅผ ์ ์ธํ๊ณ ๋ฉ๋ชจ๋ฆฌ์์ ๊ณต๊ฐ ํ๋ณด, ํด๋น ๊ณต๊ฐ์ ์ฃผ์๋ฅผ x์ ์ฐ๊ฒฐํ๋ค
- 3, 4์์๋ ๋ณ์ x๋ฅผ ์ ์ธํด์ผ ํ์ง๋ง, ์ด๋ฏธ ์ ์ธ๋ ๋ณ์ x๊ฐ ์์ผ๋ ๋ฌด์๋๋ค
- ์ดํ 6์์ x์ 1์ ํ ๋นํ๋ ค๊ณ ํ๋ค. ๋ฉ๋ชจ๋ฆฌ์์ ๊ณต๊ฐ ํ๋ณด, 1์ ์ ์ฅํ๊ณ ํด๋น ์ฃผ์๋ฅผ x์ ์ฐ๊ฒฐ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํ๋ค.
- 7, 8์ x์ ์ฐ๊ฒฐ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ ์ฝ์ด์ ์ถ๋ ฅํ๋ค. ๋ ๋ค 1์ด ์ถ๋ ฅ๋๋ค.
- 9์์ ๋ฉ๋ชจ๋ฆฌ์์ ๊ณต๊ฐ ํ๋ณด, 2 ์ ์ฅ, ํด๋น ์ฃผ์๋ฅผ x์ ์ฐ๊ฒฐ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ ์ฅํ๋ค.
- 10์์ x๋ฅผ ์ถ๋ ฅํ๋ค. 2๊ฐ ์ถ๋ ฅ๋๋ค.
์ด์ฒ๋ผ ํธ์ด์คํ ์ ์์์ผ ์ดํด๊ฐ ๋๋ ์ํฉ์ด ์๋ค.
- ํธ์ด์คํ ์ด ๋ฐ์ํ๊ธฐ์, var x ๋ฅผ ๋ ์์ฑํ๋ค๊ณ ํด์, ๋จผ์ ํ ๋นํ ๊ฐ์ด ๋ ์๊ฐ๋ค๊ฑฐ๋ ํ์ง ์๋๋ค.
ํจ์์ ๋ํ ํธ์ด์คํ
- ๋ณ์๋ ์ ์ธ๋ง ํธ์ด์คํ
๋๊ณ , ํ ๋น์ ๊ทธ๋ ์ง ์๋๋ค๊ณ ํ๋ค.
ํ์ง๋ง, ํจ์๋ ์ ์ฒด๊ฐ ํธ์ด์คํ ๋๋ค.
์๋ณธ ์ฝ๋
ํธ์ด์คํ ๋๋ฉด...
- var b๊ฐ ํธ์ด์คํ
๋๊ธด ํ์ง๋ง, ๊ทธ ๋ค์ 3๋ฒ์งธ์์ ๋ณ์ b๋ฅผ ์ ์ธํ๊ณ ํจ์ b๋ฅผ ํ ๋นํด๋ฒ๋ฆฐ๋ค.
์ด๋ฏธ ๋ณ์ b๋ฅผ ์ ์ธํ์ผ๋, ์ด๊ฑด ๋ฌด์๋์ง๋ง, ํจ์๋ ์ ์ธ๊ณผ ํ ๋น ์ ์ฒด๊ฐ ํธ์ด์คํ ๋๋ค๊ณ ํ์ผ๋, ๋ณ๋์ ๋ฉ๋ชจ๋ฆฌ์ ํจ์๊ฐ ๋ด๊ธฐ๊ณ , ๊ทธ ์ฃผ์๊ฐ์ด b์ ์ฐ๊ฒฐ๋ ๊ณต๊ฐ์ ๋ด๊ธด๋ค. - ๊ทธ๋์ 5๋ฒ ๋ผ์ธ์ ์ถ๋ ฅ์ ํจ์๊ฐ ๋๋ ๊ฒ์ด๋ค.
- ๊ทธ ๋ค์ ๋๋ฒ์ ์ถ๋ ฅ์ ๋ ๋ค 'bbb'์ด๋ค. ํจ์์ ํ ๋น์ ํธ์ด์คํ ๋๊ณ b = 'bbb'๋ง ๋จ์ผ๋ ์ด๋ ๊ฒ ๋๋ค.
ํธ์ด์คํ ์์ฝ
- JS์์ง์ ์คํ ์ปจํ์คํธ์ ์ฝ๋๋ฅผ ์คํํ๊ธฐ ์ , ์ปจํ์คํธ์ ์ฝ๋๋ฅผ ํ์ด์ ์์๋๋ก ์๋ณ์ ์ ๋ณด๋ฅผ ์์งํ๋ค
- JS์์ง์ด ์ฝ๋ ์คํ ์ ์ ์๋ณ์ ์ ๋ณด๋ฅผ ์ ๋ถ ์์งํ๋ค๋ณด๋, ์๋ณ์ ์ ๋ณด๊ฐ ๋์ด์ฌ๋ ค์ง๋ค๊ณ ์ดํดํ ์ ์๋๋ฐ, ์ด๋ฌํ ๊ฐ๋ ์ ํํํ๋ ์ฉ์ด๊ฐ ๋ฐ๋ก ๋์ด์ฌ๋ฆผ์ ์๋ฏธ๋ฅผ ๊ฐ์ง ํธ์ด์คํ ์ด๋ค
- ๋ณ์๊ฐ ํธ์ด์คํ ๋๋ฉด, ์ ์ธ๋ง ํธ์ด์คํ ๋๊ณ , ํ ๋น์ ๊ทธ ์๋ฆฌ์ ๋จ๋๋ค
- ๋ฐ๋ฉด, ํจ์๊ฐ ํธ์ด์คํ ๋๋ฉด ์ ์ฒด๊ฐ ํธ์ด์คํ ๋๋ค. ์ฆ, ์ ์ธ๊ณผ ํ ๋น ๋ ๋ค ๋์ด์ฌ๋ ค์ง๋ค๋ ์๋ฏธ์ด๋ค.