๐ถ๐ซ๏ธ this๋?
ํ์ฌ ์ฝ๋๋ฅผ ์คํํ๋ ๊ฐ์ฒด๋ฅผ ๋ํ๋ธ๋ค. ํ์ฌ ๊ธฐ๋ฅ์ ์คํ ์ค์ธ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค.
์ฐธ์กฐ๋๋ ํจ์๊ฐ ์ผ๋ฐ ํจ์์ธ ๊ฒฝ์ฐ this๋ ์ ์ญ ๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ๋ค.
์ฐธ์กฐ๋๋ ํจ์๊ฐ ๊ฐ์ฒด์ ๋ฉ์๋์ธ ๊ฒฝ์ฐ์๋ ๊ฐ์ฒด ์์ฒด๋ฅผ ์ฐธ์กฐํ๋ค.
๐ถ๐ซ๏ธ ์์์ ๋ฐ์ธ๋ฉ
์ํฉ์ ๋ฐ๋ฅธ this ๋ฐ์ธ๋ฉ์ ์์์ ์ธ this ๋ฐ์ธ๋ฉ์ด๋ผ๊ณ ํ๋ค.
์ฌ์ฉ์๊ฐ ์๊ฐํ๋๊ฒ๊ณผ ๋ค๋ฅด๊ฒ ํธ์ถ๋ ์๋ ์๊ณ ์์์ ์ธ ๋ถ๋ถ์ด ๋ง๋ค.
๊ทธ๋์ ์์ธกํ๊ธฐ ์ด๋ ต๊ณ ์ค์ฝํ์ ์คํ๋๋ ์์ ์ ๋ฐ๋ผ์ ๋ง์๊ฒ๋ค์ด ๋ฐ๋์์๋ค.
1. ์ ์ญ ๊ณต๊ฐ์์ this๋ window๋ฅผ ๋ฐ๋ผ๋ณธ๋ค.
2. ํจ์์์์ this๋ window๋ฅผ ๊ฐ๋ฆฌํจ๋ค. = ์ ์ญ ๊ณต๊ฐ์ ๊ฐ๋ฆฌํจ๋ค.
3. method์์์ this๋ ํจ์๋ ๋ค๋ฅด๊ฒ ํธ์ถ๋๋ ๋์์ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ผ๋ณด๊ณ ์๋ค.
๐ถ๐ซ๏ธ ๋ช ์์ ๋ฐ์ธ๋ฉ
์๋ฐ์คํฌ๋ฆฝํธ์ var ํค์๋๋ฅผ ์ฐ๋ฉด window ๊ฐ์ฒด์ ๋ฐํ๊ธฐ ๋๋ฌธ์ ์ ์ญ๊ฐ์ฒด์ ์ํด๋ฒ๋ ค์ ๊ต์ฅํ ๋ถ์ํ๋ค.
๋๊ตฌ๋ ์์ ํ ์ ์๋ ๊ฐ์ฒด์ด์ ๊ฐ์ด์ฌ์ ๋ถ์์ ํ๋ค.
๊ทธ๋์ ์์์๋ const๊ฐ ์ฌ์ฉ๋์๋ค.
1. call : ์ฃผ์ด์ง this ๊ฐ ๋ฐ ๊ฐ๊ฐ ์ ๋ฌ๋ ์ธ์์ ํจ๊ป ํจ์๋ฅผ ํธ์ถํ๋ค.
2. apply : ๋ฐฐ์ด์ ์ธ์๋ก ๋ฐ์ ์ ์๋ค. ์๋ณธ ํจ์๊ฐ ๋ฐฐ์ด์ argument๋ก ์ทจํด์ ํ์ฉํ ์ ์์๋ ์ฌ์ฉํ ์๊ฐ ์๋ค.
3. bind : bind ๋ฉ์๋๊ฐ ํธ์ถ๋๋ฉด ์๋ก์ด ํจ์๋ฅผ ์์ฑํ๋ค.
์ ์ธ๊ฐ์ง๋ฅผ ์ฌ์ฉํด์ this๋ฅผ ๊ณ ์ ์์ผ์ ๋ฌถ์ด๋๊ณ ์ฌ์ฉํ ์ ์๋ค.
๋๊ธ