๐ŸฆŽ [๋”ฅ๋‹ค์ด๋ธŒ ์Šคํ„ฐ๋””] 17์žฅ. ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•œ ๊ฐ์ฒด์ƒ์„ฑ

1. ํ•จ์ˆ˜ํ˜ธ์ถœ๋ฐฉ์‹์— ๋”ฐ๋ฅธ this ์˜ ๊ฐ’

  • ์ผ๋ฐ˜ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ: window
  • ๋ฉ”์„œ๋“œ๋กœ ํ˜ธ์ถœ: ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฐ์ฒด
  • ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ : ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑํ•œ ์ธ์Šคํ„ด์Šค

2. new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•ด๋‹นํ•จ์ˆ˜๋Š” 000 ํ•จ์ˆ˜๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋‹ค์‹œ๋งํ•ด. ํ•จ์ˆ˜ ๊ฐ์ฒด ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ xx ์ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ xxx์ด ํ˜ธ์ถœ๋œ๋‹ค. ๋‹จ new ์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋Š” โ€”โ€”- ์ด์–ด์•ผ ํ•œ๋‹ค.

new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ•ด๋‹นํ•จ์ˆ˜๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋กœ ๋™์ž‘ํ•œ๋‹ค.
ํ•จ์ˆ˜ ๊ฐ์ฒด ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ call์ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ construct๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.
๋‹จ new์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜๋Š” non-constructor๊ฐ€ ์•„๋‹Œ constructor์ด๋‹ค.

3. ๋ฐ˜๋Œ€๋กœ new ์—ฐ์‚ฐ์ž ์—†์ด ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด 00 ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ๋œ๋‹ค. ๋‹ค์‹œ๋งํ•ด ํ•จ์ˆ˜ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€ ๋ฉ”์„œ๋“œ xx ๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ xx ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

new ์—ฐ์‚ฐ์ž ์—†์ด ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ํ˜ธ์ถœ๋œ๋‹ค. ๋‹ค์‹œ๋งํ•ด ํ•จ์ˆ˜ ๊ฐ์ฒด์˜ construct๊ฐ€ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ call์ด ํ˜ธ์ถœ๋œ๋‹ค.

1. ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ์˜ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐฉ์‹์˜ ์žฅ์ ์„ ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด ๋ฐฉ์‹์˜ ๋‹จ์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์„ค๋ช…ํ•˜์‹œ์˜ค.

๊ฐ์ฒด๋ฆฌํ„ฐ๋Ÿด์€ ์ƒ์„ฑ์ด ๊ฐ„ํŽธํ•˜์ง€๋งŒ, ๋‹จ ํ•œ๊ฐœ์˜ ๊ฐ์ฒด๋งŒ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ๋™์ผํ•œ ํ”„๋กœํผํ‹ฐ๋ฅผ ๊ฐ–๋Š” ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ƒ์„ฑํ•ด์•ผํ•  ๊ฒฝ์šฐ ๋ฒˆ๊ฑฐ๋กญ๋‹ค. ์ƒ์„ฑ์ž๋Š” new ์—ฐ์‚ฐ์ž์™€ ํ•จ๊ป˜ ํ˜ธ์ถœํ•ด ํ…œํ”Œ๋ฆฟ ์ฒ˜๋Ÿผ ๊ฐ์ฒด๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ๋ฌดํ•œํžˆ ์ฐ์–ด๋‚ธ๋‹ค.

2. ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ์—”์ง„์ด construct์™€ non-construct๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋Š”์ง€ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด ์„ค๋ช…ํ•˜์‹œ์˜ค.

ํ•จ์ˆ˜์˜ ์ •์˜๋ฅผ ํ‰๊ฐ€ํ•˜์—ฌ ๊ตฌ๋ถ„.

con? ํ•จ์ˆ˜ ์„ ์–ธ๋ฌธ, ํ‘œํ˜„์‹, ํด๋ž˜์Šค

non-constructor: ๋ฉ”์„œ๋“œ(๋ฉ”์„œ๋“œ์˜ ์ถ•์•ฝํ‘œํ˜„๋งŒ ์ธ์ •๋จ..) , ํ™”์‚ดํ‘œ ํ•จ์ˆ˜.

3. ์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ๊ณผ์ •์„ ์„ค๋ช…ํ•˜์‹œ์˜ค.

์ƒ์„ฑ์ž ํ•จ์ˆ˜์˜ ์—ญํ• ์€ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ๋™์ž‘ํ•˜์—ฌ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๊ณผ, ์ƒ์„ฑ๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”(์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ ์ถ”๊ฐ€ ๋ฐ ์ดˆ๊ธฐ๊ฐ’ํ• ๋‹น..)ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ƒ์„ฑ์€ ํ•„์ˆ˜, ์ดˆ๊ธฐํ™”๋Š” ์˜ต์…˜ ..

  1. ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ๊ณผ this ๋ฐ”์ธ๋”ฉ

: ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ this๋Š” ์ƒ์„ฑ์ž ํ•จ์ˆ˜๊ฐ€ ์ƒ์„ฑํ•  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.

  1. ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” : ์ƒ์„ฑ์ž ํ•จ์ˆ˜์— ๊ธฐ์ˆ ๋œ ์ฝ”๋“œ๊ฐ€ ํ•œ์ค„์”ฉ ์‹คํ–‰๋˜์–ด this ์— ๋ฐ”์ธ๋”ฉ ๋˜์–ด์žˆ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ํ”„๋กœํผํ‹ฐ๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ธ์Šคํ„ด์Šค์— ์ถ”๊ฐ€, ์ดˆ๊ธฐ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์•„ ์ธ์Šคํ„ด์Šค ํ”„๋กœํผํ‹ฐ์— ํ• ๋‹นํ•˜์—ฌ ์ดˆ๊ธฐํ™”ํ•˜๊ฑฐ๋‚˜ ๊ณ ์ •๊ฐ’์„ ํ• ๋‹น.
  2. ์ธ์Šคํ„ด์Šค์˜ ๋ฐ˜ํ™˜: ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ๋‚ด๋ถ€์˜ ๋ชจ๋“  ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ฐ”์ธ๋”ฉ ๋œ this ๊ฐ€ ์•”๋ฌต์ ์œผ๋กœ ๋ฐ˜ํ™˜๋œ๋‹ค.
ํด๋ž˜์Šค์™€ function์˜ ์ฐจ์ด๋Š” ๋ญ์ง€? ๋ฆฌ์•กํŠธ๋Š” ์ž‘๋™์›๋ฆฌ๊ฐ€ ๋‹ค๋ฅธ๊ฑธ๊นŒ? this ๋ฅผ ํ•จ์ˆ˜์—์„œ๋„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š”..?

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ