웹(Web)/프론트엔드(Frontend)

JavaScript 정리2(클래스, 상속, 다양성)

SK_MOUSE 2021. 3. 15. 00:20
반응형

javascript

클래스

class Person{
    constructor(name, age){
        this.name = name;
        this.age = age;
    }
    speak(){
        console.log(`${this.name} : hello!`);
    }
}

//사용
const ellie = new Person('ellie' , 20);
console.log(ellie.age);
ellie.speak();

 

getter, setter

class User{
    constructor(name, age){
        this.name = name;
        this.age = age;
    }
    get age(){
        return this._age;
    }
    set age(value){
        // if(value<0){
        //     throw Error('age can not be negative')
        // }
        this._age = value < 0 ? 0 :value;
    }
}

const user1 = new User('Steve' , -1);//나이가 음수는 안돼
console.log(user1.age);

 

Public, #Private : 지원된지 얼마 안됨(2020기준)

class Experiment{
    publicField = 2;
    #privateField =4;
}

const exp = new Experiment();
console.log(exp.publicField);
console.log(exp.privateField);//안됨.

 

static은 메모리사용을 줄여줄 수 있으므로 그때 사용한다.

 

 

 

상속,다양성

class Shape{
    constructor(width, height, color){

    }

    draw(){

    }

    getArea(){
        return width * this.height;
    }
}

class Rectangle extends Shape{

}

class Triangle extends Shape{
    
}

super.draw()는 최상위인것은 알고있다.

 

instanceof는 class checking에 사용한다 : 모든 클래스는 Object에 속한다.

다른 언어와 마찬가지로 오버라이딩도 가능하다.

 

https://developer.mozilla.org/en-US/d...

 

반응형