getter와 setter 사용 예시
class User {
constructor(name, age){
this.name = name;
this.age = age;
}
get age(){ // getter는 앞에 get 을 붙여줘서 쓰고 this._age를 조회할수 있게 return해줘야한다.
return this._age;
}
set age(value){ //setter는 age 값을 넣을 때 호출된다.
if(value < 0){
this._age = 0;
}else{
this._age = value;
}
}
}
const user = new User('yeongoo', 31)
일단 위와 같이 코드를 작성하면 user 객체에는 {name: 'yeongoo', age: 31} 이 아니고 {name: 'yeongoo', _age: 31} 이렇게 된다.
값을 넣을 때 this.age에 바로 들어가는 것이 아니고 setter 함수를 설정한 set age가 호출되기 때문이다.
그래서 직접적으로 this.age에 값이 설정되는 것을 막아주고 위 코드로 예를 들면 사람의 나이에는 음수 값이 올 수 없기 때문에 음수 값이 들어올 경우 0으로 바꿔서 넣어주게 된다.
이렇게 setter를 통해 값이 설정되면 this._age = age 가 되기 때문에 getter 함수를 사용한 get age 를 통해 this.age 를 해서 this._age를 조회할 수 있게 해 준다.(getter는 user.age() 이렇게 함수를 호출하는 것이 아니고 user.age 이렇게 property처럼 사용한다.)
이렇게 어떤 조건의 값이 설정되면 안 되는 곳에 setter를 통해서만 값이 설정되게 해서 임의의 값이 오는 걸 막아주거나 변경해주고 getter를 통해 조회할 수 있게 만들 수 있다.
'javascript' 카테고리의 다른 글
javascript 반복문 ! (0) | 2020.10.08 |
---|---|
javascript 배열과 내장함수 ! (0) | 2020.10.07 |
javascript 객체의 기본! (0) | 2020.10.06 |
javascript 함수에 대해 알아보자! (0) | 2020.10.06 |
javascript 조건문 (0) | 2020.10.06 |