'ES6 클래스'에 해당되는 글 2건

[JavaScript] ES6 Class Static Method

 

클래스에 static으로 명시된 함수는 클래스로 호출이 가능하나, 생성된 인스턴스에서는 사용이 불가능하다.

 

class Car {
    constructor(name='없음', passengers='0', price='0') {
        this.name = name;
        this.passengers = passengers;
        this.price = price;
    }

    print() {
        console.log(
            'name => ' + this.name, 
            '/ passengers => ' + this.passengers, 
            '/ price => ' + this.price
        );
    }

    static carPrint(){
        console.log('static carPrint 스태틱 메소드 출력');
    }
}

// 클래스 스태틱 메소드 호출
Car.carPrint();
// static carPrint 스태틱 메소드 출력

var sonata = new Car('sonata' , '4' , 10000);
sonata.print();
//name = >sonata / passengers = >4 / price = >10000
sonata.carPrint(); // 스태틱 메소드 호출
// VM4320:27 Uncaught TypeError: sonata.carPrint is not a function at <anonymous>:27:8

블로그 이미지

미나미나미

,

# Class 생성 및 인스턴스 생성 

class Car {
    constructor(name, passengers, price) {
        this.name = name;
        this.passengers = passengers;
        this.price = price;
    }

    print() {
        console.log(
            'name => ' + this.name, 
            '/ passengers => ' + this.passengers, 
            '/ price => ' + this.price
        );
    }
}

var sonata = new Car('sonata' , '4' , 10000);
sonata.print();
// name = >sonata / passengers = >4 / price = >10000

# 결과 화면 

 


# Class  인스턴스  생성시 초기화

class Car {
   // 인스턴스 생성시, 초기화 값 지정
    constructor(name='없음', passengers='0', price='0') {
        this.name = name;
        this.passengers = passengers;
        this.price = price;
    }

    print() {
        console.log(
            'name => ' + this.name, 
            '/ passengers => ' + this.passengers, 
            '/ price => ' + this.price
        );
    }
}

var sonata = new Car('sonata' , '4' , 10000);
sonata.print();
//name = >sonata / passengers = >4 / price = >10000

// 인스턴스 생성시, 인자값 초기화 지정값 사용
var notCar = new Car();
notCar.print();

 

# 결과 화면

블로그 이미지

미나미나미

,