๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Call

(1)
[JavaScript] this๋ž€? / call, apply, bind ์ฐจ์ด์  ๐Ÿ”— this๋ž€? this๋Š” ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹์— ๋”ฐ๋ผ this์— ๋ฐ”์ธ๋”ฉํ•  ๊ฐ์ฒด๊ฐ€ ๋™์ ์œผ๋กœ ๊ฒฐ์ •๋œ๋‹ค. (์˜ˆ์™ธ์ ์œผ๋กœ, bind ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœ๊ณผ ๋ฌด๊ด€์—๊ฒŒ ๋ฌถ์–ด์„œ ๊ณ ์ •์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.) ํ˜ธ์ถœํ•œ ๊ฐ์ฒด === this ๐Ÿ”— ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐฉ์‹ 1. ํ•จ์ˆ˜(์ผ๋ฐ˜ํ•จ์ˆ˜, ์ „์—ญํ•จ์ˆ˜, ์™ธ๋ถ€ํ•จ์ˆ˜, ๋‚ด๋ถ€ํ•จ์ˆ˜(์ผ๋ฐ˜ ๋‚ด๋ถ€ํ•จ์ˆ˜, ๋ฉ”์†Œ๋“œ์˜ ๋‚ด๋ถ€ํ•จ์ˆ˜, ์ฝœ๋ฐฑํ•จ์ˆ˜ ๋“ฑ)) ํ˜ธ์ถœ this๋Š” ์ „์—ญ๊ฐ์ฒด(window)๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. 2. ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ this๋Š” ํ•ด๋‹น ๋ฉ”์†Œ๋“œ์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. 3. ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ํ˜ธ์ถœ this๋Š” ์ƒ์„ฑ์ž๋กœ ์ธํ•ด ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค. 4. call, apply, bind ํ˜ธ์ถœ this๊ฐ€ ํ•จ์ˆ˜ ํ˜ธ์ถœ์‹์— ๋”ฐ๋ผ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค๋ฉด call, apply, bind๋Š” ํ•จ์ˆ˜๊ฐ€ ์ง์ ‘ ์‹คํ–‰๋ฌธ๋งฅ์„ ๊ฒฐ์ •ํ•œ๋‹ค. call์€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ด ์‹คํ–‰ํ•œ๋‹ค. ํ•จ์ˆ˜..