class
ν€μλλ₯Ό ν΅ν΄ λ§λ ν΄λμ€λ κΈ°λ³Έμ μΌλ‘
- νλ‘νΌν° (νλ)
- λ©μλ
μ΄λ κ² λ κ°μ§λ‘ ꡬμ±λλ€.
κ°κ°μ λν΄ μμ보μ.
class User{
name;
email;
constructor(name, email){
this.name = name;
this.email = email;
}
}
const user1 = new User("μ°ν
μ½", "woowacourse@gmail.com");
μ μμλ₯Ό 보면 User
λΌλ ν΄λμ€κ° μλ€. User
λ name
, email
μ΄λ κ² λ κ°μ§μ λ³μλ₯Ό κ°μ§λ€. μ΄ λ λ³μλ₯Ό νλ‘νΌν°λΌκ³ λΆλ₯Έλ€. μ²μμλ μ΄λ° μ€ μμλ€.
λ€μ μ΄λ―Έμ§λ μ°ν
μ½ ν리μ½μ€ 2μ£Όμ°¨ κ³΅ν΅ νΌλλ°± λ΄μ©μ μΌλΆμ΄λ€.
νλ...? κ°μ μ μ₯νλ λ μμ 무쑰건 νλ‘νΌν°λΌ μκ°νλλ° μ²μ 보λ νλλΌλ μΉκ΅¬κ° μμλ€.
μ μ΄λ―Έμ§λ κ΄λ ¨ λ΄μ©μ κ²μν΄λ³΄κ³ , κ°μ₯ μ΄ν΄κ° μ¬μ΄ λ΅λ³μ μ°Ύμμ¨ κ²μ΄λ€. κ°λ¨ν μμ½νμλ©΄ λ€μκ³Ό κ°λ€.
βν΄λμ€μ νλ‘νΌν°λ λ€μμ λ μ°¨μ΄μ μ 보μΈλ€.
- νλλ ν΄λμ€ λ 벨μμ κ°μ μ μ₯νλ λ©μ»€λμ¦μ΄λ€.
- νλλ ν΄λμ€ μ€μ½νμμ λ³μμ κ°λ μΌλ‘ μ°μΈλ€.
- μΈμ€ν΄μ€μμ λ°μ΄ν°λ₯Ό μ μ₯νκ³ μΆλ€λ©΄ νλλ₯Ό μ¬μ©ν΄μΌ νλ€.
- νλ‘νΌν°λ λ°μ΄ν°λ₯Ό μ μ₯νμ§ μλλ€.
- νλ‘νΌν°λ get, set λ©μλμ μμ΄λ€.
- νλ‘νΌν°λ λ°μ΄ν°λ₯Ό μ μ₯νμ§ μκ³ , νλμ μ κ·Όνμ¬ κ·Έ κ°μ λ³κ²½ν λΏμ΄λ€.
ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν΄μ κ°μ μ μ₯ν λ μ€μ λ‘ κ·Έ κ°μ μ μ₯νκ³ μλ λ μμ νλλΌκ³ λΆλ₯Έλ€λ μ μ μλ‘ μκ² λμλ€.
class User{
name;
email;
constructor(name, email){
this.name = name;
this.email = email;
}
printName(){
console.log(this.name);
}
printEmail(){
console.log(this.email);
}
}
const user1 = new User("μ°ν
μ½", "woowacourse@gmail.com");
user1.printName(); // μ°ν
μ½ μΆλ ₯
user1.printEmail(); // woowacourse@gmail.com μΆλ ₯
μ΄μ νλ‘νΌν° ν΄λμ€ μμμ printName
, printEmail
μ΄λ ν¨μκ° ν΄λμ€μ μΆκ°λμ΄ μλ€. κ° ν¨μλ€μ 보면 this
λ‘ λ΄λΆ νλμ μ κ·Όν΄ μ΄λ₯Ό μΆλ ₯νλ μν μ μννλ€.
μ΄μ²λΌ ν΄λμ€ λ΄λΆμμ μ΄λ€ λ‘μ§μ μνν λ μ¬μ©νλ ν¨μλ₯Ό λ©μλ
λΌκ³ λΆλ₯Έλ€. λ λ©μλ λ³΄λ¨ λ©μλκ° λ μ’μ λ©μλλΌ λΆλ₯Έλ€ππ
λ©μλ μ€ νΉμ΄ν λ
μμ΄ νλ μλ€. λ°λ‘ constructor
μ΄λ€.
μ°λ¦¬κ° new
λ₯Ό ν΅ν΄ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ jsλ μλμΌλ‘ λΉ ν¨μλ₯Ό μμ±νλ€. κ·Έλ¦¬κ³ κ·Έ ν¨μμ λ³Έλ¬Έμ μ±μλ£μ λ constructor
μ λ΄μ©μ μ±μλ£λλ€. κ·Έ ν ν΄λμ€ λ΄μ μ μν νλ‘νΌν°, λ©μλλ₯Ό prototype
μ μ μ₯νλ€.
λ°λΌμ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό μμ±ν λ κ°μ₯ λ¨Όμ νΈμΆλλ λ
μμ΄ λ°λ‘ constructor
λΌλ κ²μ΄λ€. μ΄ λ
μμ μ΄λ¬ν νΉμ± λλ¬Έμ μΈμ€ν΄μ€ μμ±μ μΈλΆ κ°μ ν΅ν΄ κ°μ²΄μ νλ κ°μ μ΄κΈ°ννκ³ μ ν λ μ°μΈλ€.
μμ μ¬λ¬ κ°λ μ μ€λͺ ν λ μΈμ€ν΄μ€λΌλ λ§μ μμ£Ό μ¬μ©νλλ° μΈμ€ν΄μ€κ° 무μμΈμ§ μ νν μκ³ μ μ 보λ₯Ό μ°Ύμ보μλ€.
wikipediaμμ μ°Ύμ κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°μμ μΈμ€ν΄μ€μ μ μμ΄λ€. μ 리ν΄λ³΄μλ©΄ λ€μκ³Ό κ°λ€.
μΈμ€ν΄μ€λ νλ‘κ·Έλ¨μ λ°νμ μ€μ μ‘΄μ¬νλ λͺ¨λ κ°μ²΄μ ꡬ체μ μΈ λ°μμ΄λ€.
λ°λΌμ ν΄λμ€λ₯Ό ν΅ν΄ μΆμνλ λ΄μ©μ ꡬ체μ μΈ κ°μΌλ‘ μ μ₯νκ³ μλ κ° κ°μ²΄λ₯Ό μΈμ€ν΄μ€λΌκ³ λΆλ₯Έλ€κ³ ν μ μλ€. μμλ₯Ό 보μ.
class User{
name;
email;
constructor(name, email){
this.name = name;
this.email = email;
}
}
const user1 = new User("μ°ν
μ½", "woowacourse@gmail.com");
μ²μμ νλ‘νΌν° κ°λ
μ μ΄ν΄νκΈ° μν΄ μ¬μ©νλ μμμ΄λ€. μ¬κΈ°μ User
λ ν΄λμ€, user1
μ User
ν΄λμ€μ μΈμ€ν΄μ€μ΄λ€.
User
μλ name
, email
λΌλ νλκ° μ νμ Έ μμ§λ§ μ΄λ μ€μ κ°μ μ μ₯ν μνκ° μλλ€. λ€μ λ§ν΄ User
λ μ μ λΌλ κ°λ
μ name
, email
μ΄λΌλ νλλ₯Ό κ°μ§λ κ°μ²΄λ‘ μΆμν ν κ²μΌ λΏμ΄λ€.
νμ§λ§ new
μ°μ°μλ₯Ό ν΅ν΄ μμ±λ user1
μ User
μ λ¬λ¦¬ μ€μ λ‘ κ°μ κ°μ§κ³ μλ κ°μ²΄μ΄λ€. user1
μ μ μ λΌλ κ°λ
μ μΆμνν User
λ₯Ό ꡬ체μ μΈ κ°μΌλ‘ μ μ₯νκ³ μλ κ°μ²΄μΈκ²μ΄λ€.
λ€μ μ΄λ ΅κ² λκ»΄μ§ μ μμ κ°λ μ΄λ μ²μ²ν μ½μ΄λ³Έλ€λ©΄ μμΈλ‘ μ΄λ ΅μ§ μκ² μ΄ν΄ν μ μμ κ²μ΄λ€.