๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
L'etude

Javascript : this

by hxunz 2022. 5. 23.
๐Ÿ˜ถ‍๐ŸŒซ๏ธ 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๋ฅผ ๊ณ ์ •์‹œ์ผœ์„œ ๋ฌถ์–ด๋†“๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋Œ“๊ธ€