Class & Constructor & Method
Class
ํด๋์ค๋ ๊ฐ์ฒด์ ์ค๊ณ๋๋ค. ํด๋์ค์ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ธ์คํด์ค๋ฅผ ์ฐ์ด๋ธ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์์ ํด๋์ค ์ ์ธ์ ์์ฃผ ๊ฐ๋จํ๋ค. ์ฐธ๊ณ ๋ก ํด๋์ค ์ ์ธ์ hoisting๋์ง ์๋๋ค๋ ์ ์ ์ ์ํด์ผ ํ๋ค. (๋งจ ๋ง์ง๋ง ๋ผ์ธ export default Animal
์ Animal.js ํ์ผ์์ Animal ํด๋์ค๋ฅผ ์ธ๋ถ๋ก exportํ๊ธฐ ์ํ ์ฝ๋๋ค. ํด๋์ค ์ธ์๋ ํจ์๋ ๋ณ์ ๋ฑ์ exportํ ๋๋ ์ด๋ฅผ ์ฌ์ฉํ ์ ์๋ค.)
ํด๋์ค ๋ฌธ๋ฒ์ด ์ถ๊ฐ๋์ง๋ง, ์๋ฐํ ๋งํ์๋ฉด ์ง์ง ํด๋์ค๊ฐ ์๋๋ผ ํจ์๋ค. ๊ทธ๋ฆฌ๊ณ ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ ์ผ๊ธ๊ฐ์ฒด๋ค. ์ฆ, ์๋ฐ์คํฌ๋ฆฝํธ์ ์๋ก์ด ๊ฐ์ฒด์งํฅ ๋ชจ๋ธ์ด ๋์
๋ ๊ฒ์ ์๋๊ณ , ๋ฌธ๋ฒ์ ์ผ๋ก๋ง ํด๋์ค๋ฅผ ์ง์ํ๊ฒ ๋ ๊ฒ์ด๋ค. ํด๋น ์ฝํ
์คํธ์์ hoisting๋์ง ์๋๋ค๋ ์ ๋ง ๋นผ๋ฉด ์ ์ฝ๋๋ function Animal() { }
๊ณผ ๊ฐ๋ค.
๋ค๋ฅธ ํ์ผ์์ Animal ํด๋์ค์ ์ ๊ทผํ๋ ค๋ฉด ์ฐ์ Animal ํด๋์ค๋ฅผ importํด์ผ ํ๋ค. (์์ export default Animal
๋ผ์ธ์ ์์ฑํ ์ด์ ๋ค.) anim
๋ณ์๋ฅผ ๋ง๋ค๊ณ new
ํค์๋๋ฅผ ํตํด Animal์ ์์ฑํ ์ ์๋ค. ์ฌ๊ธฐ์ anim
์ Animal ํด๋์ค๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ ํผ๋ฐ์ค ๋ณ์(Reference variable)์ด๋ฉฐ, ์ธ์คํด์ค(Instance)๋ผ๊ณ ๋ถ๋ฅธ๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ฐ๋ก ํด๋์ค๋ผ๋ ์ค๊ณ๋๋ฅผ ์ด์ฉํด ์ธ์คํด์ค๋ผ๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ณผ์ ์ด๋ค.
Constructor(์์ฑ์)
ํด๋์ค๋ ํ๋์ constructor๋ฅผ ๊ฐ์ง ์ ์๋ค. constructor๋ new Animal();
๋ช
๋ น์ ํตํด ์คํ๋์ด ์ธ์คํด์ค๋ฅผ ์ด๊ธฐํํ๋ ์ญํ ์ ํ๋ค. ๋ํ constructor์๋ name
์ฒ๋ผ ๋งค๊ฐ๋ณ์๋ฅผ ๋ ์๋ ์๋ค. ๋ง์ฝ constructor๋ฅผ ๋ช
์ํ์ง ์๋๋ค๋ฉด ๋น์ด์๋ default constructor๊ฐ ๋ง๋ค์ด์ง๋ค. ๊ตณ์ด ๋น constructor๋ฅผ ๋ง๋ค ํ์๋ ์๋ค.
Instance variable(์ธํฐํ์ด์ค ๋ณ์)
ํด๋์ค์ ๋ฉค๋ฒ ํ๋กํผํฐ๋ constructor ์์ ์ ์ธํ๋ค. ๋ค๋ฅธ ์ธ์ด์์๋ ์ด๋ฅผ ์ธ์คํด์ค ๋ณ์(Instance variable)๋ผ๊ณ ๋ถ๋ฅด์ง๋ง, ์์ ์ธ๊ธํ๋ฏ ํด๋์ค๋ ์ฌ์ค ํจ์๊ณ , ์๋ฐ์คํฌ๋ฆฝํธ์์ ํจ์๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ this.name
์ ๋ณ์๊ฐ ์๋ ํ๋กํผํฐ(Property)๋ค.
์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋๊ฒจ์ค ์ ์๋ค.
Food
์ธ์คํด์ค์ ํ๋กํผํฐ name
์ ๊ฐ์ 'Jakeโ๋ค.
Method
๋ฉ์๋๋ ํจ์์ ๋น์ทํ๋ฉฐ, ๋ฉ์๋๋ ๊ฐ์ฒด์ ๋์์ ์ ์ํ๋ค. getName()
๋ฉ์๋๋ Animal ํด๋์ค์ ํ๋กํผํฐ์ธ this.name
์ ๋ฐํํ๋ค.
ํธ์ถ ์ญ์ ์ง๊ด์ ์ด๋ค.
EX1) ์์
Last updated