๐ ๊ฐ์ฒด๋? (Object)
ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ์ฝ๋๋ฅผ
์ญํ ๊ณผ ์๋ฏธ์ ๋ง๊ฒ ๋ถ๋ฆฌํ์ฌ,
๊ทธ์ ๋ง๋ ์ฌ๋ฌ๊ฐ์ง ํํ์ ๋ณ์์ ( variable )
๊ทธ ๋ณ์๋ค์ ๋ค๋ฃฐ ํจ์( function )๋ฅผ
ํ ๊ตฐ๋ฐ ๋ฌถ์ด์ ์ ์ฅํด ๋์ ๋ฌถ์
์ด๋ ๊ฐ์ฒด์ ๋ด์ ๋ณ์๋ฅผ "๋ฉค๋ฒ๋ณ์"( property ) ๋ผ๊ณ ๋ถ๋ฅด๊ณ ,
๊ฐ์ฒด์ ๋ด์ ํจ์๋ฅผ "๋ฉ์๋"( method ) ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๐ ํด๋์ค๋?
๊ฐ์ ์๋ฏธ๋ฅผ ๊ฐ์ง ๊ฐ์ฒด๋ฅผ, ์ฌ๋ฌ๊ฐ ๋ง๋ค๊ธฐ ์ํ ์ค๊ณ๋
ํด๋์ค ๋ง๋ค๊ธฐ
// ๋๋ฌผ ๊ฐ์ฒด ํ(ํด๋์ค) ๋ง๋ค๊ธฐ
class Animal {
// ์์ฑ์ - ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค๋, ๊ทธ ๊ฐ์ฒด์ ์ํ๋ฅผ ์ค์ ํ๋ ํจ์
// ํด๋์ค ์คํ์, ์ธ์๋ฅผ ๋ฐ๊ณ ์ฒ์ 1๋ฒ ์คํ๋๋ค.
constructor(name, live) {
console.log("constructor excuted.");
// ์ด ๊ฐ์ฒด(this)์ ๋ฉค๋ฒ๋ณ์์, constructor๊ฐ ๋ฐ์ ์ธ์๋ฅผ ํ ๋นํ๋ค
this.name = name;
this.live = live;
}
// ๋๋ฌผ์ ์ํ๋ฅผ ๋ฉค๋ฒ๋ณ์๋ก ์ ์ฅ
name = "";
live = true;
}
ํด๋์ค ์ฌ์ฉํ๊ธฐ ( ํด๋์ค ๋ณธ๋ฐ, ๊ฐ์ฒด ๋ง๋ค๊ธฐ )
// new Animal()๋ก, ํด๋์ค ์ฌ์ฉํ๊ธฐ
// ํ ๋ผ ๊ฐ์ฒด ๋ง๋ฌ - ()์์ ๋งค๊ฐ๋ณ์๋ counstructor๋ก ์ ๋ฌ๋๋ค.
const rabbit = new Animal("rabbit", false);
// ๊ฐ์์ง ๊ฐ์ฒด ๋ง๋ฌ
const dog = new Animal("dog");
// ํ ๋ผ์ ๊ฐ์์ง๋ ๋ชจ๋ ๋๋ฌผ์ด๋ฏ๋ก, ๋๋ฌผํ(ํด๋์ค)๋ฅผ ์ฌ์ฉํด ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ค.
๐ ์ธ์คํด์ค ๋? (instance)
ํ๋์ ๋ฐ์ดํฐ๊ตฌ์กฐ๋ฅผ ๊ณต์ ํ๋ ๋ฐ์ดํฐ
ํด๋์ค๊ฐ ๋ฐ์ดํฐ๊ตฌ์กฐ์ ํฌํจ๋๋ฏ๋ก, ( ๋ถ๋ถ ์งํฉ )
ํด๋์ค๋ฅผ ๊ณต์ ํ๋ ๋ฐ์ดํฐ์ธ ๊ฐ์ฒด๋ ์ธ์คํด์ค์ด๋ค. ( ๋ง์ฐฌ๊ฐ์ง๋ก ๋ถ๋ถ ์งํฉ )
[ ์ฃผ์ ]
๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ํด๋์ค๋ณด๋ค ๋ ๋์ ์๋ฏธ์ด๋ฉฐ, ( ๋ฐ์ดํฐ ๊ตฌ์กฐ > ํด๋์ค )
์ธ์คํด์ค๊ฐ ๊ฐ์ฒด๋ณด๋ค ๋ ๋์ ์๋ฏธ์ด๋ค. ( ์ธ์คํด์ค > ๊ฐ์ฒด )
๐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ด๋?
๋ฐ์ํ