ํฐ์คํ ๋ฆฌ ๋ทฐ
[๋ณธ์บ ํ 8์ผ์ฐจ]
25.01.03 Today I Learned๐ก
1. JavaScript ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 2์ฃผ์ฐจ
ํ๋ก๊ทธ๋๋จธ์ค์์ ์ํ๋ ๊ฒ
JavaScript ๋ฌธ๋ฒ ์ข ํฉ๋ฐ 2์ฃผ์ฐจ ๊ณผ์ ๋ฅผ ํ๋ฉฐ 1์ฃผ์ฐจ ๊ณผ์ ๋ฅผ ์ฐธ๊ณ ํ๋ค.

๐ง์๋ฌธ์
ํ๋ก๊ทธ๋๋จธ์ค์ ๋ฌธ์ ๋น ์ ์ถ๋ ฅ ์๋ฅผ ๋์ ํด๋ณด๋ฉฐ ํจ์๋ฅผ ์ฒดํฌํ๋ ๊ณผ์ ์์ console.log ์ solution์ ์์น๊ฐ ํท๊ฐ๋ ธ๋ค.
๐์์
1์ฃผ์ฐจ ๊ณผ์ ํ์ด ์ ๋ต๐๐ป

๋ฅผ ๋ณด๋ฉด ํจ์ ์ธ๋ถ์ var๋ก ์ง์ ํ ์์ ๊ฐ & console.log๋ก ๊ฐ์ผ solution์ ํ์ธํ ์ ์๋ค. ๊ฐ์ ์ฐ์ด๋ณด๋ฉด ์ ์ ์ถ๋ ฅ ๋๋ค.
2์ฃผ์ฐจ ๊ณผ์ ํ์ด ์ ๋ต๐๐ป

๋ฅผ ๋ณด๋ฉด ์ฃผ์ ์ฒ๋ฆฌ ๋ '์ ๋ต ํ์ธ์ฉ(1)' ๋ ์ค์ด ํจ์ ๋ด ์ธ๋ก ์๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
ํจ์ ๋ด์ ์๋ console.log๋ ํ์ดํ๋ฉฐ ๋ณํํ๋ ๊ฐ์ ์ดํด๋ณด๊ธฐ ์ํด ์์น๋ฅผ ์๋ฆฌ์กฐ๋ฆฌ ๋ฐ๊ฟ์ ์ฌ์ฉํ๋ค.
๊ฐ์ ํ์ธํ๊ธฐ ์ํด์๋ ๋ณ์๋ฅผ ๋์ ํ ํจ์์ console.log๊ฐ ํ์ํ ๊ฑด ์์์ง๋ง ์์น์ ๋ฐ๋ผ ๊ฐ์ด ๋ฌ๋ผ์ง๋์ง ๊ถ๊ธํด์ก๋ค.
์๋ 1.

1์ฃผ์ฐจ์์์ฒ๋ผ ํจ์ ์ธ๋ถ์ ๋ด์ฉ์ ์ถ๊ฐํ๋๋ ๊ฐ์ด ๋ ์ค์ด ๋์๋ค. ์ด์ ๋ํ ๋ถ๋ถ์ ๊ธ๋ฐฉ ์ ์ ์์๋ค.
๋ฐ๋ก console.log๊ฐ ํจ์ ๋ด ์ธ๋ก ๋ ๊ฐ๊ฐ ์๊ธฐ ๋๋ฌธ!
์๋ 2.

2์ฃผ์ฐจ์์์ฒ๋ผ '์ ๋ต ํ์ธ์ฉ(1)' ๋ ์ค๋ก ๋๋์ด์ ์ถ๋ ฅํ๋๋ ๋ฐฐ์ด ๋ ๊ฐ๊ฐ ๋์๋ค. ์๋ ๋ต์ 9์ธ๋ฐ!
์ด ๋ถ๋ถ์ ํํฐ๋๊ป ์ง๋ฌธํ๋๋
๊ฐ์ด for๋ฌธ์ ๊ฑฐ์ณ์ ๊ณ์ฐ๋์ด์ผ ํ๋๋ฐ, ๋จ์ง solution์ ๊ฐ์ console.log์ ์ ๋ ฅํ ๊ฐ๋ง์ด ๋์๋ค.
๊ณ ์ค๋ช ํด์ฃผ์ จ๋ค.
๐ก๊นจ๋ฌ์ ์
console.log๋ฅผ ํจ์ ๋ด๋ถ์ ์ฐ๋ ๊ฑด ์ค๊ฐ ๊ฐ์ ์ฒดํฌํด๋ณด๋ ์ฉ๋๋ก ์ฌ์ฉํ๊ณ ,
ํจ์๋ฅผ ์์ฑํ ํ ๋ชจ๋ ๊ณ์ฐ์์ ๊ฑฐ์ณ ๊ฐ์ ๋ด๋ ค๋ฉด ํจ์ ์ธ๋ถ์ ๋ณ์์ console.log๋ฅผ ์ ์ฉ์ํค๋ ํธ์ด ์ข์ ๋ฏ ํ๋ค.

๋ฐ๋ผ์ 2์ฃผ์ฐจ์ ๊ฒฐ๊ณผ ํ์ธ์ฉ(2)์ฒ๋ผ ์ง์ ํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ธ ๋ฏ ํ๋ค!
๋ํ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ํ๋ ๊ฒ์ ์์ฃผ ๋ง์ ๋ณ์๋ฅผ ๋์
ํ์ ๋๋ ์ ์ ์๋๋๋ ํจ์ ์์ฒด๋ฅผ ๋ต์ผ๋ก ์ํ๋ ๊ฒ์ด๋ค.
๋ฐ๋ผ์ ๋ต์ ์ ์ถํ ๋ console.log๋ฅผ ์ง์ฐ๋ ์ด์ ๊ฐ ๋ ์ ์๋ค.
์ฝ๋ฐฑ ํจ์๋ ํจ์๋ค.
2์ฃผ์ฐจ๋ฅผ ๋ชจ๋ ๋ง์น๊ณ ๊ทธ ์ด๋ ต๋ค๋.. 3์ฃผ์ฐจ๋ฅผ ๋ค์๋ค.
์คํ๋ฐ๊น์ง๋ ์ฌ์ฐจ์ ์ฐจ ์ดํด๋ฅผ ํ์ผ๋!!
ํ๋ฐ๋ถ "This" ์์๋ ์์ ํ ์ ์ ์ ๋์๋ฒ๋ ธ๋ค.. ใ
ใ
ใ
ใ
ํํฐ๋๊ป ์ฌ์ญค๋ณด๋ ์์ธํ ์ค๋ช
ํด์ฃผ์
์ ์ผ์ถ ์ดํด๋ ๋์ผ๋ ์ฌ์ค this๋ ์ง๊ธ ๋น์ฅ ๊ธํ ๊ฒ ์๋๋ผ๊ณ ...
์ดํ์ ๋ ์ค์ํ ๊ฒ์ด ๋์จ๋ค๋ฉฐ '์ด๋ฐ ๊ฒ ์๊ตฌ๋~' ํ๊ณ ์ง๋๊ฐ๋ผ๊ณ ํ์
จ๋ค.
๊ทธ๋์ ๋ ์ด์ ์ง์ํ๊ฒ ํ์ง ์๊ณ ์ ์ ํ์ด ๋ค์๋ค.
ํ์ง๋ง ๊ธฐ์ต๋๋ ๊ฑด!
์คํ ์ปจํ
์คํธ๋ ์คํํ ๋ก๋์ ์ ๊ณตํ ํ๊ฒฝ ์ ๋ณด์ด๋ฉฐ 3๊ฐ๊ฐ ์๊ณ ,
VE, LE, This Binding ์ด๋ผ๋ ๊ฒ...
๊ทธ๋ฆฌ๊ณ ์ฝ๋ฐฑ ํจ์๋ ํจ์๋ผ๋ ๊ฒ.. ใ ใ ใ ใ
+) ์ฝ๋ฐฑ ํจ์๋ ํจ์์ด๊ธฐ ๋๋ฌธ์ ํจ์๋ก์์ ํธ์ถ๋ก ์ธ์์ด ๋์ด์ this binding ์ ๊ธ๋ก๋ฒ(node.js)๋ก ํ๋ค. ์ฆ, ์ ์ญ ๊ฐ์ฒด๋ฅผ ๋ฐ๋ผ๋ณธ๋ค.
์ด ๋ง์ ์ข ๋ ๊น์ด ์ดํดํ๋ ๋๊ฐ ์ค๊ธธ ~