this
this๋ ํจ์ ๋ด์์ ํจ์ ํธ์ถ ๋งฅ๋ฝ(context)๋ฅผ ์๋ฏธํ๋ค. ๋งฅ๋ฝ์ด๋ผ๋ ๊ฒ์ ์ํฉ์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง๋ค๋ ์๋ฏธ์ธ๋ฐ, ์ฆ, ํจ์๋ฅผ ์ด๋ป๊ฒ ํธ์ถํ๋๋์ ๋ฐ๋ผ์ this๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ด ๋ฌ๋ผ์ง๋ค. ์๋ฅผ ๋ค์ด ๊ฐ์ฒด ์์ ๋ฉ์๋์์ this๊ฐ ๋์ค๋ฉด ์ด๊ฒ์ ๋ฉ์๋๊ฐ ์ํด์๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ์ด์ฒ๋ผ ํจ์์ ๊ฐ์ฒด์ ๊ด๊ณ๊ฐ ๋์จํ ์๋ฐ์คํฌ๋ฆฝํธ์์ this๋ ์ด ๋์ ์ฐ๊ฒฐ์์ผ์ฃผ๋ ์ค์ง์ ์ธ ์ฐ๊ฒฐ์ ์ ์ญํ ์ ํ๋ค
์์ funcํจ์๋ฅผ ์คํํ๋ฉด "window === this"๊ฐ ์ถ๋ ฅ๋๋ค. ์ด๊ฒ์ ํด์ํด๋ณด๋ฉด, func ํจ์ ๋ด์์ this๋ ์น๋ธ๋ผ์ฐ์ ํ๊ฒฝ์ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ ์ญ๊ฐ์ฒด์ธ window๋ฅผ ์๋ฏธํ๋ ๊ฒ์ด๋ค.
์์ฑ์์ this
ํจ์ ์์์ this๋ ๊ทธ ํจ์๊ฐ ์ํด์๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค. ์ด ๊ฐ์ฒด๋ ์ฌ์ฉ์๊ฐ ๋ง๋ ๊ฐ์ฒด์ผ์๋ ์๊ณ ์ ์ญ๊ฐ์ฒด์ผ ์๋ ์๋ค.
๋๊ฐ์ ํจ์์ง๋ง, ์์ฑ์๋ก ์ฌ์ฉ๋๋ฉด this๋ ์์ฑ๋๋ ๊ฐ์ฒด๊ฐ ๋๊ณ , ํจ์๋ก ํธ์ถํ๋ฉด ์ด ํจ์ ์์์ this๋ window๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
์๋ก ์์ฑ๋๋ ๊ฐ์ฒด๊ฐ ์์ฑ์ ์์์ this๊ฐ ๋๋ค.(์์ฑ์ ์์์ this๋ ์์ฑ์๊ฐ ๋ง๋ ๊ฐ์ฒด์ด๋ค.)
apply์ call
์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์ผ๋ง๋ ์ ์ฐํ์ง๋ฅผ ๊ทน๋ช ํ๊ฒ ๋ณด์ฌ์ค๋ค. ํจ์๋ ๊ฐ์ฒด๋ผ๋ ๊ฒ์ ๋ค์ ๋ ์ฌ๋ ค๋ณด์. ํจ์๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ property(์์ฑ)์ ๊ฐ์ง ์ ์๋ค. ํจ์๊ฐ ๊ฐ์ง ์ ์๋ ์์ฑ ์ค์ apply์ call์ด ์๋ค.
์ฒซ๋ฒ์งธ, ๋๋ฒ์งธ ์ธ์๋ ๋งค๊ฐ๋ณ์์ฒ๋ผ ์ฌ์ฉ๋๊ณ , ๋ง์ง๋ง ์ธ์๋ ํจ์ sum์ ๋ณธ๋ฌธ์ ํด๋นํ๋ค. ์๋์ฒ๋ผ new๋ฅผ ์ด์ฉํ ์๋ ์์ง๋ง ๋ฆฌํฐ๋ด์ด๋ผ๋ ๋ฌธ๋ฒ์ ์ฒด๊ณ๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด ๋ ํธ๋ฆฌํ๋ค.
ํจ์ ๋ฆฌํฐ๋ด : function sum (x,y) {...}
๊ฐ์ฒด ๋ฆฌํฐ๋ด : var o = {...}
๋ฐฐ์ด ๋ฆฌํฐ๋ด : var a = [1,2,3];
apply์ this
Last updated