๐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋จ

๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํ๋์ ๋ชจ๋ธ์ ๋ง๋ค๊ณ ,
๋ชจ๋ธ์ ๋ฐํ์ผ๋ก ํ ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ํ๋ก๊ทธ๋๋ฐ ํจํด์ด๋ค.
์ ๊ทธ๋ฆผ์ ์๋ ๋ชจ๋ธ์ class , ๊ฐ์ฒด๋ฅผ instance ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
๐ ES5 ํด๋์ค ์์ฑ ๋ฌธ๋ฒ & ES6 ํด๋์ค ์์ฑ ๋ฌธ๋ฒ

- ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋จ์ class ์ ํจ์๋ก ์ ์๊ฐ ๊ฐ๋ฅํ๋ค.
- ํจ์๋ ES6๊ฐ ๋์
๋๊ธฐ ์ , ์์ฃผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.
- class๋ ES6๊ฐ ๋์
๋ ํ, ์ต๊ทผ ์์ฃผ ์ฌ์ฉ๋๊ณ ์๋ ๋ฐฉ๋ฒ์ด๋ค. (class ํค์๋๋ก ์ฌ์ฉํ ์ ์๋ค.)
- class์ ์์ฑ์(constructor) ํจ์๋ ์ธ์คํด์ค๊ฐ ๋ง๋ค์ด์ง ๋ ์คํ๋๋ ์ฝ๋์ด๋ค.
๐ class ์์ฑ ์ ์

- this๋ ์ธ์คํด์ค ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๋ค.
- parameter๋ก ๋์ด์จ ์ด๋ฆ, ์์ ๋ฑ์ ์ธ์คํด์ค ์์ฑ ์ ์ง์ ํ๋ ๊ฐ์ด๋ฉฐ,
this์ ํ ๋นํ๋ค๋ ๊ฒ์ ๋ง๋ค์ด์ง ์ธ์คํด์ค์ ํด๋น ์ด๋ฆ, ์์์ ๋ถ์ฌํ๊ฒ ๋ค๋ ์๋ฏธ์ด๋ค.
๐ class ๋ฉ์๋ ์ ์

- ES5๋ prototype์ด๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํด์ผ ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์๋ค.
- ES6์์๋ ์์ฑ์ ํจ์์ ํจ๊ป class ํค์๋ ์์ชฝ์ ๋ฌถ์ด์ ์ ์ํ ์ ์๋ค.
๐ class ์คํ ๋ฐฉ๋ฒ

-
class๋ instance๋ฅผ ๋ง๋ค ๋ new ํค์๋๋ฅผ ์คํํ๋ ์ฆ์ ์์ฑ์ ํจ์๊ฐ ์คํ๋๋ฉฐ,
๋ณ์์ ํด๋์ค์ ์ค๊ณ๋ฅผ ๊ฐ์ง ์๋ก์ด ๊ฐ์ฒด, ์ฆ ์ธ์คํด์ค๊ฐ ํ ๋น๋๋ค.
-
๋ํ ๊ฐ๊ฐ์ instance๋ class์ ๊ณ ์ ํ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ๊ฒ ๋๋ค.
๐ instance ์ฌ์ฉ

์์ ๋งํ๋ ๋ถ๋ถ์ธ instance๋ class์ ๊ณ ์ ํ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ๊ฐ๊ฒ ๋๋ค๊ณ ํ์๋ ๊ฒ ์ฒ๋ผ
ํ์ฌ ์์ ๋ก ๋ณด์์ ๋, pinkHeart ์์ new ํค์๋๋ฅผ ํตํด parameter๋ก name, color ์ ํด๋น ํ๋ ๊ฐ์ ์ฃผ๋ ๋์์ pinkHeart ๋ณ์๋ ํด๋์ค์ธ heart์ ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋ ๊ฒ์ด๋ค.
-
์ธ์คํด์ค ์์ฑ -> ํด๋์ค ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋จ
let pinkHeart = new heart('yoonHeart', 'pink');
-
์ธ์คํด์ค ์ฌ์ฉ -> ํด๋์ค ์์ฑ๊ณผ ๋ฉ์๋๋ฅผ ์ด๋์ด ๊ฐ๋ฅ
pinkHeart.color // 'pink'
let blueColor = pinkHeart.convertColor() // 'blue'