β¨ Class λ?
κ°μ²΄λ₯Ό μμ±νκΈ° μν ν
νλ¦Ώμ΄λ€. ES6λΆν°λ class
ν€μλλ‘ μμ±ν μ μλ€.
class Student{
constructor(name, age, major){ // constructor(μμ±μ) ν¨μ, κ·Έλ¦¬κ³ instance μ properties(attributes)
//instance μμ± μ μ
this.name = name;
this.age = age;
this.major = major; // this = μμ±λλ μΈμ€ν΄μ€
}
}
Class μ νΉμ§:
- ν¨μν Class λ νΈμ΄μ€ν μ΄ μΌμ΄λμ§λ§, μ μΈν Class λ νΈμ΄μ€ν μ΄ μΌμ΄λμ§ μλλ€.
- ν΄λμ€ μμλ νλμ constructor
λ©μλλ§ μ‘΄μ¬ν μ μμΌλ©°, μ¬λ¬ κ°μ constructor
λ©μλκ° μμ κ²½μ° SyntaxError κ° λ°μνλ€.
- extends
ν€μλλ₯Ό ν΅ν΄ ν΄λμ€ μμμ, super
ν€μλλ₯Ό ν΅ν΄ μμ± μμμ ν μ μλ€.
β¨ Instance μ Method λ?
Instanceλ ν΄λμ€μ κ³ μ ν μμ±κ³Ό λ©μλλ₯Ό κ°λ κ°μ²΄μ΄λ€. new
ν€μλλ‘ μμ±ν μ μλ€.
let firstStudent = new Student('Meryl', 65, 'Art')
// this = firstStudent
// firstStudent.name = 'Meryl'
Method λ μ΄λ¬ν κ°μ²΄μ μμ±μΈ ν¨μμ΄λ€.
Instanceμ μμ±μ λΆμ¬νλ €λ©΄ κΌ constructor ν¨μλ₯Ό μ¨μΌ νλ€.
class Student{
newStudent(name, age, major){ // constructor(μμ±μ) ν¨μ
//instance κ° μμ±λ λ μ€νλλ μ½λ
this.name = name;
this.age = age;
this.major = major; // this = μμ±λλ μΈμ€ν΄μ€
}
}
let testStudent = new Student('lol', 15, 'game')
// typeof testStudent === 'object'
// testStudent.name === 'undefined'
μ°Έκ³ μλ£
'π» DEV > Javascript & NodeJS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Javascript] Async ν¨μμ Await (0) | 2021.05.27 |
---|---|
[Javascript] Promise (νλ‘λ―Έμ€) (0) | 2021.05.27 |
[Javascript] λΉλκΈ°, λκΈ° ν¨μ (Asynchronous, Synchronous) λ? (0) | 2021.05.27 |
[Javascript] κ°μ²΄μ Deep Copy (κΉμ 볡μ¬) (0) | 2021.05.09 |
[Javascript] ν¨μ : Currying (컀λ§) (0) | 2021.05.09 |
λκΈ