ํ๋กํ ํ์ ์ด ๋ฌด์์ธ์ง ํ์ตํ๋ค.
ํ๋กํ ํ์ ๊ฐ์ฒด๋ ๋ ๋ค์ ์์ ํ๋กํ ํ์ ๊ฐ์ฒด๋ก ๋ถํฐ ๋ฉ์๋์ ์์ฑ์ ๋ฐ์ ์๋ ์๊ณ ๊ทธ ์์ ํ๋กํ ํ์ ๊ฐ์ฒด๋ ๋์ผํ๋ค.
[ํ๋กํ ํ์ ๊ฐ์ฒด] โฌ ๏ธ ์์ โฌ ๏ธ [์์ ํ๋กํ ํ์ ] โฌ ๏ธ ์์ โฌ ๏ธ [์์ ํ๋กํ ํ์ ]
prototype
์ด๋ผ๋ ์์ฑ์ ์ ์ ๋์ด์๋ค.__proto : ๊ฐ๋ณ ๊ฐ์ฒด์ ์์ฑ
prototype : ์์ฑ์์ ์์ฑ
์ผ์ข ์ ์ํ(original form)๊ฐ์ฒด๋ฅผ ์์ฑํ๊ธฐ ์ํ ์์ด๋์ด ์ฒญ์ฌ์ง
ํด๋์ค์ ์ฌ๋ก(instance object)
ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ธฐ ์ํ ์์ฑ์(constructor)ํจ์๋ฅผ ํฌํจํ๋ค.
ํด๋์ค, ์ธ์คํด์ค, ํ๋กํ ํ์ ์ ๊ด๊ณ
class Human { // ํด๋์ค constructor(name, age) { // ์์ฑ์ ํจ์ this.name = name; this.age = age; } sleep() { console.log(`${this.name}์ ์ ์ ๋ค์์ต๋๋ค`); } } let Jieun = new Human('์ง์', 27); // ์ธ์คํด์ค
[์ฌ๋] โก๏ธ .prototype โก๏ธ [์ฌ๋.prototype(.sleep)] โก๏ธ new Human() instantiation โก๏ธ [์ง์(.sleep)]**
[์ฌ๋] โฌ ๏ธ .constructor โฌ ๏ธ [์ฌ๋.prototype(.sleep)] โฌ ๏ธ proto โฌ ๏ธ [์ง์(.sleep)]
ํ๋กํ ํ์
์ ์ํ๊ฐ์ฒด์ด๋ฉฐ Javascript๋ ํ๋กํ ํ์
๊ธฐ๋ฐ ์ธ์ด์ด๋ค.
์ด์ธ __proto
, prototype
์ด ๋ฌด์์ธ์ง ์ด๋ค ์์ผ๋ก ์ฌ์ฉํ๋์ง ์ ์ ์๋ ์๊ฐ์ด์๋ค.