Program development/web

[WEB 개발] 001_1 javascript 에서 class 사용하기

닉네임이 왜 필요해 2021. 6. 4. 02:23

"001 라즈베리 파이와 nodejs로 만드는 timer" 에서 사용한 javascript class 에 대해 알아보고자 합니다. 

목표 : javascript 에서 class 사용하기

 

이 페이지를 통해 아래 정보를 확인하실 수 있습니다. 

  • 기본문법
  • 접근자 프로퍼티 getter setter

기본문법

기본 문법은 아래와 같습니다. 

class MyClass{
    constructor() {}
    method1() {}
    method2() {}
}

기본문법에서 보이는 것과 같이 자바스크립트는 생성자만 존재하며 소멸자는 존재하지 않습니다. 

상세한 내용은 아래 페이지를 접근하시면 더 많은 정보를 얻으실 수 있습니다. 

https://ko.javascript.info/class

 

클래스와 기본 문법

 

ko.javascript.info


접근자 프로퍼티 getter setter

예제를 보여드리겠습니다. 

class MyClass{
    constructor(value) {
        this.value1 = value;
    }
    method1() {}
    method2() {}
    
    get value(){
        return this._value;
    }
    set value(data){
        this._value = data;
    }
}

var mc = new MyClass(123);
mc.value=5674;
console.log(mc.value);

외부에서 내부 데이터[_value]를 접근하기 위해 get, set value이라는 접근자 프로퍼티 getter와 setter를 선언하여 접근하도록 합니다. 

외부에서 실행할때 get 의 경우 mc.value로 실행하며 set의 경우 mc.value = 5674;로 실행할 수 있습니다.

 

만약 아래와 같은 에러메시지가 출력된다면 get, set 이 함께 존재하는 것이 아닌 하나만 존재해서 생기는 문제라고 보시면 됩니다. 따라서 내가 생성한 접근자 프로퍼티가 짝이 이루어지는지 확인 후 수정하시면 됩니다. 

 

Uncaught TypeError: Cannot set property value of #<MyClass> which has only a getter

 

상세한 프로퍼티 getter와 setter에 대한 정보는 아래 url을 참조하시면 더 많은 정보를 얻을 수 있을 것입니다. 

https://ko.javascript.info/property-accessors

 

프로퍼티 getter와 setter

 

ko.javascript.info