๐ฆ [๋ฅ๋ค์ด๋ธ ์คํฐ๋] 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. ์์ฑ์ ํจ์์ ์ธ์คํด์ค ์์ฑ ๊ณผ์ ์ ์ค๋ช ํ์์ค.
์์ฑ์ ํจ์์ ์ญํ ์ ํ ํ๋ฆฟ์ผ๋ก ๋์ํ์ฌ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ, ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ์ด๊ธฐํ(์ธ์คํด์ค ํ๋กํผํฐ ์ถ๊ฐ ๋ฐ ์ด๊ธฐ๊ฐํ ๋น..)ํ๋ ๊ฒ์ด๋ค. ์์ฑ์ ํ์, ์ด๊ธฐํ๋ ์ต์ ..
- ์ธ์คํด์ค ์์ฑ๊ณผ this ๋ฐ์ธ๋ฉ
: ์์ฑ์ ํจ์ ๋ด๋ถ์ this๋ ์์ฑ์ ํจ์๊ฐ ์์ฑํ ์ธ์คํด์ค๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
- ์ธ์คํด์ค ์ด๊ธฐํ : ์์ฑ์ ํจ์์ ๊ธฐ์ ๋ ์ฝ๋๊ฐ ํ์ค์ฉ ์คํ๋์ด this ์ ๋ฐ์ธ๋ฉ ๋์ด์๋ ์ธ์คํด์ค๋ฅผ ์ด๊ธฐํํ๋ค. ํ๋กํผํฐ๋ ๋ฉ์๋๋ฅผ ์ธ์คํด์ค์ ์ถ๊ฐ, ์ด๊ธฐ๊ฐ์ ์ ๋ฌ๋ฐ์ ์ธ์คํด์ค ํ๋กํผํฐ์ ํ ๋นํ์ฌ ์ด๊ธฐํํ๊ฑฐ๋ ๊ณ ์ ๊ฐ์ ํ ๋น.
- ์ธ์คํด์ค์ ๋ฐํ: ์์ฑ์ ํจ์ ๋ด๋ถ์ ๋ชจ๋ ์ฒ๋ฆฌ๊ฐ ๋๋๋ฉด ์ธ์คํด์ค๊ฐ ๋ฐ์ธ๋ฉ ๋ this ๊ฐ ์๋ฌต์ ์ผ๋ก ๋ฐํ๋๋ค.
ํด๋์ค์ function์ ์ฐจ์ด๋ ๋ญ์ง? ๋ฆฌ์กํธ๋ ์๋์๋ฆฌ๊ฐ ๋ค๋ฅธ๊ฑธ๊น? this ๋ฅผ ํจ์์์๋ ์ฌ์ฉํ๋ ์ด์ ๋..?
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ฆ [๋ฅ๋ค์ด๋ธ ์คํฐ๋] 17์ฅ. ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด์์ฑ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@leejyart/17์ฅ.-์์ฑ์-ํจ์์-์ํ-๊ฐ์ฒด์์ฑ์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค