
โ prototype
prototype์ ์์ฑ์ ํจ์์ ์์ฑ์ด๋ค.

์์ฑ์ ํจ์์ ์์ฑ์ธ prototype์ผ๋ก ํ๋กํ ํ์ ์ ์ ๊ทผํ ์ ์๋ค.
์ ์ฌ์ง์ ์๋ก ๋ค๋ฉด Person์ด๋ผ๋ ์์ฑ์ ํจ์๊ฐ ์๋ค๋ฉด, Person.prototype์ Person์ด๋ผ๋ ์์ฑ์ ํจ์์ ์ํด ์์ฑ๋ ์ธ์คํด์ค์ ํ๋กํ ํ์ ์ ๊ฐ๋ฆฌํจ๋ค. (์ถ๊ฐ์ ์ผ๋ก prototype์ ๋ฐ์ดํฐ ํ๋กํผํฐ, __proto__๋ ์ ๊ทผ์ ํ๋กํผํฐ์ด๋ค.)
โ __proto__
__proto__๋ ํ๋กํ ํ์
๊ณผ ์ธ์คํด์ค์ ์์ฑ์ด๋ค.(๋ชจ๋ ๊ฐ์ฒด์ ์์ฑ)
__proto__๋ ํ๋กํ ํ์
(Person.prototype)์ ๊ฐ๋ฅดํจ๋ค.
โ ์ค์ค๋ก ์๊ฐ ์ ๋ฆฌ
์ฝ๊ฒ ์๊ฐํ ์ ์๋๋ก ์ ๋ฆฌํ ๊ฐ์ธ์ ์ธ ์๊ฐ์ด๋ค.
prototype ์์ฑ์ ์์ฑ์ ํจ์์ ์ธ์คํด์ค๊ฐ ์ด๋ฐ ๊ฒ๋ค์ ์์ ๋ฐ์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์. ๋ผ๊ณ ์๊ฐํ์ฌ ์ธ์คํด์ค๊ฐ ํ๋กํ ํ์ ์ผ๋ก๋ถํฐ ์์ ๋ฐ์ ์์ฑ๋ค์ ์ง์ ํ๋ ์ฉ๋
__proto__๋ ์ธ์คํด์ค์์ ๋ด ํ๋กํ ํ์ ์ ๋๊ตฌ์ง? ๋ผ๊ณ ์๊ฐํ์ฌ ์ธ์คํด์ค์์ ํ๋กํ ํ์ ์ ์ ๊ทผํ๋ ์ฉ๋
๋ญ๊ฐ ์ ์ฌ์ง์ ์์๋ก ๊ด๊ณ๋๋ฅผ ๊ทธ๋ ค๋ณด๋ฉด(ํ๋กํ ํ์ ์ ์ ๊ทผํ๋ ํ๋ฆ?)
Person --> .prototype --> ํ๋กํ ํ์ (Person.prototype) <-- .__proto__ <-- me
์ ํํ์ง ์์ง๋ง ์ด๋ ๊ฒ ์๊ฐํ๋ฉด ์ฌ์ด ๊ฒ ๊ฐ๋ค.
| ๊ตฌ๋ถ | prototype | proto |
| ์ด๋์ ์์ | ํจ์(์์ฑ์ ํจ์ ํฌํจ)์ ์กด์ฌ | ๋ชจ๋ ๊ฐ์ฒด์ ์กด์ฌ |
| ์ญํ | ์์ฑ๋ ์ธ์คํด์ค๋ค์ด ๋ฌผ๋ ค๋ฐ์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ ์ํ๋ ๊ณต๊ฐ | ์ธ์คํด์ค๊ฐ ์์ ์ ํ๋กํ ํ์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ด๋ถ ๋งํฌ |
| ์์ฑ ๋ชฉ์ | ์ธ์คํด์ค์๊ฒ ์์ํ ๋ฉ์๋/์์ฑ ์ ์ฅ | ํ๋กํ ํ์ ์ฒด์ธ์ ๋ฐ๋ผ ๋ถ๋ชจ๋ฅผ ์ฐพ์๊ฐ๊ธฐ ์ํ ์ฐธ์กฐ |
| ์ค์ ๋ฐฉ๋ฒ | ํจ์๊ฐ ์ ์๋ ๋ ์๋์ผ๋ก ์์ฑ๋จ | ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก ์ฐ๊ฒฐ๋จ |
| ๋ฐ์ดํฐ ์ข ๋ฅ | ์ผ๋ฐ ๊ฐ์ฒด (๋ฐ์ดํฐ ํ๋กํผํฐ) | ์ ๊ทผ์ ํ๋กํผํฐ (getter/setter๋ก ๋ด๋ถ [[Prototype]] ์ฐธ์กฐ) |
'๐ ๋ชจ๋ฅ๋ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| 31์ฅ. RegExp(์ ๊ท ํํ์) (3) | 2025.08.27 |
|---|---|
| 23์ฅ. ์คํ ์ปจํ ์คํธ(LexicalEnvironment์ VariableEnvironment) (1) | 2025.05.20 |
| 17์ฅ. ์์ฑ์ ํจ์์ ์ํ ๊ฐ์ฒด ์์ฑ (0) | 2025.02.28 |
| 16์ฅ. ํ๋กํผํฐ ์ดํธ๋ฆฌ๋ทฐํธ (0) | 2025.02.28 |