반응형

📝Class 클래스

// Class

class Person {
    // constructor
    constructor(name, age){
        this.name = name;
        this.age = age;
    }

    // methods
    speak(contents){
        console.log(`${this.name} : ${contents}`);
    }

    // this.age라고 쓴 경우 get age()를 호출
    get age(){
        // return this.age; 이렇게 사용시 get age()를 계속 호출
        return this._age;
    }

    // this.age에 값을 설정할 때 set age()를 호출
    set age(value){
        // this.age = value; 이렇게 사용시 set age()를 계속
        this._age = value < 0 ? 0 : value;
    }
}

const sam = new Person('Sam', 20);
console.log(sam.name);
console.log(sam.age);
sam.speak('Hello!');

JavaScript에서 클래스를 위와 같이 사용할 수 있다

 

📝Extends, Overrride

class Shape {
    
    constructor(width, height, color){
        this.width = width;
        this.height = height;
        this.color = color;
    }

    paint(){
        console.log(`painting ${this.color} color`)
    }

    draw(){
        console.log(`drawing shape`);
    }
}

class Rectangle extends Shape {
    // Overriding
    draw(){
        // super.draw(); 부모 함수 사용 가능
        console.log(`drawing Rectangle`)
    }
}

const rectangle = new Rectangle(100, 200, 'red');
rectangle.paint();
rectangle.draw();

Extends를 이용해 Class를 상속받을 수 있고 Override처럼 자식 클래스가 함수를 재정의해서 사용할 수도 있다.

 

반응형