[JS] chapter15. κ°μ²΄ μ§ν₯ - ν΄λμ€μ μΈμ€ν΄μ€
π ν΄λμ€μ μΈμ€ν΄μ€
π§· κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°
νλμ λͺ¨λΈμ΄ λλ μ²μ¬μ§μ λ§λ€κ³ κ·Έ μ²μ¬μ§μ λ°νμΌλ‘ ν κ°μ²΄λ₯Ό λ§λλ νλ‘κ·Έλλ° ν¨ν΄
μ²μ¬μ§ - class
κ°μ²΄ - instance
class - λλ¬Έμλ‘ μμνλ©° μΌλ°λͺ μ¬λ‘ λ§λ λ€
μμ±κ³Ό λ©μλλ₯Ό μ μ
function Car(color) {}
// ν΄λμ€λ ν¨μ μ μ κ°λ₯
// ES6μμλ class λΌλ ν€μλλ₯Ό μ΄μ©ν΄ μ μ κ°λ₯
class Car {
constructor(brand, name, color)
// μΈμ€ν΄μ€κ° λ§λ€μ΄μ§ λ μ€νλλ μ½λ
}
instance - ν΄λ μ€μμ μ μν μμ±κ³Ό λ©μλλ₯Ό μ΄μ©
let avante = new Car('blue') // κ°κ°μ μΈμ€ν΄μ€λ CarλΌλ ν΄λμ€μ κ³ μ ν μμ±κ³Ό λ©μλλ₯Ό κ°λλ€
let mini = new Car('cyan')
let beetles = new Car('red')
μμ±κ³Ό λ©μλμ μ μ
// μμ±μ μ μ
function Car(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
//ES6 λ¬Έλ²
class Car{
constructor(brand, name, color) {
this.brand = brand;
this.name = name;
this.color = color;
}
}
// λ©μλμ μ μ
function Car(brand, name, color) {
Car.prototype.refuel = function() {
// μ°λ£ 곡κΈμ ꡬννλ μ½λ
}
Car.prototype.drive = function() {
// μ΄μ μ ꡬννλ μ½λ
}
}
//ES6 λ¬Έλ²
class Car{
constructor(brand, name, color) {
refuel() {
}
drive() {
}
}
}
μΈμ€ν΄μ€μμμ μ¬μ©
let avante = new Car('hyundai','avante','black');
avante.color; // 'black'
avante.drive(); // μλ°λΌκ° μ΄μ μ μμ
let mini = new Car('bmw','mini','white');
mini.brand; // 'bmw'
mini.refuel(); // λ―Έλμ μ°λ£λ₯Ό 곡κΈν¨
π‘ μμλμ΄μΌ νλ μ©μ΄
prototype : λͺ¨λΈμ μ²μ¬μ§μ λ§λ€ λ μ°λ μν κ°μ²΄
constructor : μΈμ€ν΄μ€κ° μ΄κΈ°νλ λ μ€ννλ μμ±μ ν¨μ
this : ν¨μκ° μ€νλ λ, ν΄λΉ λ²μλ§λ€ μμ±λλ κ³ μ ν μ€ν context
π§ ν΄λμ€λ‘λΆν° μΈμ€ν΄μ€λ₯Ό λ§λ€ λ μ΄λ€ ν€μλλ₯Ό μ¨μΌ νλμ§ κ³ λ₯΄μΈμ.
answer : new