์ด๋ฒ ํ์ต์์ ํด๋์ค(class)
, ์ธ์คํด์ค(instance)
๊ทธ๋ฆฌ๊ณ ES6
์์ฑ๋ฒ์ ๋ํด ํ์ตํ๋ค.
ํด๋์ค์ ์ธ์คํด์ค๋ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋ง์ ์ฐ๊ด์ด ์๋ค.
โ ํ๋์ ๋ชจ๋ธ์ด ๋๋ ์ฒญ์ฌ์ง(blueprint)๋ฅผ ๋ง๋๋ ๊ฒ์
โ ํด๋์ค(class)
๋ผ๊ณ ํ๋ฉฐ
โก ๊ทธ ์ฒญ์ฌ์ง์ ๋ฐํ์ผ๋ก ํ ๊ฐ์ฒด(object)๋ฅผ ๋ง๋๋ ๊ฒ ์โก ์ธ์คํด์ค(instance)
๋ผ๊ณ ํ๋ค.//โ class function Car(color){} //โก instance // Car๋ผ๋ ํด๋์ค์ ๊ณ ์ ํ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ๊ฒ ๋๋ค. let avante = new Car('blue'); let mini = new Car('red'); let beeties = new Car('black');
new ํค์๋
๋ฅผ ์ฌ์ฉํด ์ค๋ค.class
๋ ๋๋ฌธ์๋ก ์์ํ๋๊ฒ ์ข๋ค.์๋ฅผ ๋ค์ด ๊ณต์ฅ์์ ์ฅ๋๊ฐ์ ๋ง๋ค ๋ ๋์๋์ง ์์ ์ํ(์๋ฌด๊ฒ๋ ์์
ํ์ง ์์์ ์ํ)๋ฅผ ํด๋์ค๋ผ ํ๋ค๋ฉด
์ฅ๋๊ฐ์ ํน์ง์ ๋ฐ๋ผ ์์, ์
์ธ์ฌ๋ฆฌ ๋ฑ์ ์ถ๊ฐํ๋ ์์
(์์ฑ ์ถ๊ฐ)์ ์ธ์คํด์ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค.
ํจ์ ์์ฑ๋ฒ์ ๋๊ฐ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
function Car(brand, name, color){
//์คํ ์ฝ๋
}
class ํค์๋
๋ฅผ ์ฌ์ฉํ๋ค.// ์์ฑ์(constructor) ํจ์
class Car {
consructor(brand, name, color){
//์คํ ์ฝ๋
}
}
ํด๋น ํจ์๋ฅผ
์์ฑ์(constructor) ํจ์
๋ผ๊ณ ํ๋ค.
์์ฑ์ ํจ์๋return
๊ฐ์ ๋ง๋ค์ง ์๋๋ค.
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํตํด ์ฌ๋ฌ๋ฒ ์์ ์ด ํ์ํ ๊ฒฝ์ฐ ์ ์ฉํ๋ฉฐ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ์ ์ ์๊ฒ ๋์๋ค.
๋ํ ES5๋ก๋ง ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์๋ ๋์๊ฒ ES6๋ผ๋ ์ฝ๋ ์์ฑ๋ฒ์ผ๋ก
์ฝ๋๋ฅผ ์ต์ ํ ํ ์ ์์ง ์์๊น ์ถ๋ค.
ํ๋ก๊ทธ๋๋ฐ ์์ญ์ ๋น ๋ฅด๊ฒ ๋ฐ์ ํด ๋๊ฐ๋ ๊ฑฐ ๊ฐ๋ค.