본문 바로가기
JS

setter와 getter

by 개발자doc 2024. 5. 3.
목차
1. setter
2. getter
3. 왜 사용해야할까?
1. setter
  • 클래스 내의 속성에 접근하여 기존 데이터를 갱신하기 위한 메소드
class 클래스{
    constructor(속성값1,속성값2){
        this.속성1 = 속성값1;
        this.속성2 = 속성값2;
    }
    set속성1(속성값1){
        this.속성1 = 속성값1;
    }
}

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

const person = new Person('홍길동',20);
person.setName('철수');//홍길동이라는 객체의 이름 속성값을 철수로 갱신
2. getter
  • 클래스 내의 속성에 접근하여 데이터 값을 가져오기 위한 메소드
class 클래스{
    constructor(속성값1,속성값2){
        this.속성1 = 속성값1;
        this.속성2 = 속성값2;
    }
    get속성1(속성값1){
        return this.속성1;
    }
}

ex)
class Person{
    constructor(name,age){
        this.name = name;
        this.age = age;
    }
    getName(name){
        return this.name;
    }
}

const person = new Person('홍길동',20);
person.getName();//홍길동이라는 객체의 이름 속성 값을 리턴
3. 왜 사용해야할까?

그냥 속성에 접근해서 값을 바꿔버리면 안되는건가?  

객체지향에서 외부에 객체 내부 상태를 공개하는 것을 숨기고 접근을 제어하는 캡슐화는 중요한 개념이다. getter와 setter를 사용하면 객체의 직접적인 접근을 막고 접근할 수 있는 속성을 지정할 수 있어 제어가 용이하다. 또한 setter/getter를 이용하면 갱신하려는 데이터에 대해 유형성검증을 할 수 있고 데이터 가공같은 추가 로직을 할 수 있다.

'JS' 카테고리의 다른 글

클로저  (0) 2024.05.07
비동기 시간함수  (0) 2024.05.06
메모이제이션  (0) 2024.05.01
객체에 관해  (0) 2024.04.30
얕은 복사 vs 깊은 복사  (0) 2024.04.29