목차
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를 이용하면 갱신하려는 데이터에 대해 유형성검증을 할 수 있고 데이터 가공같은 추가 로직을 할 수 있다.