본문 바로가기

javascript

javascript getter 와 setter !

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