get set 사용하기

최석훈·2021년 2월 17일
0
post-custom-banner

만약 우리가 person이라는 class를 만든다고 가정해보자. Person에는 이름, 나이 템플릿이 존재한다. 이제 사용자가 class로 object를 만드는데 실수로 나이에 -1이라는 수를 넣었다. 근데 나이는 -1이 될 수 없기 때문에 우리는 방어적으로 이 실수를 만회 시켜주어야한다. 이때 get, set를 사용하는 것이다.

'use strict'

class User{
  constructor(firstName, lastName, age){
    this.firstName = firstName;
    this.lastName = lastName;
    this.age = age;
  }
  
  get age() {
    return this._age; 
  }
  
  set age(value) {
    this._age = value < 0 ? 0 : value;
  }
}

const user1 = new User('Steve', 'job', -1);
console.log(user1.age);

위의 코드를 설명하면, constructor 안에 있는 this.age는 get age()를 실행시키고 = age는 set age(value)를 실행시킨다.
get은 값을 return하고 set은 값을 설정하는 역할을 한다. set은 값을 설정하기 때문에 인자인 value를 넣어줘야하는 것이다.

근데 get, set에는 왜 age 언더바를 붙인 것일까?
그 이유는 만약 언더바 안붙이고 age라고만 해서 코드를 작성한다면 set 안에 있는 this.age가 끝나면서 set을 부르고 이게 반복되면서 갇히게 되어버린다. 그래서 언더바를 붙인 것이다. 언더바가 아닌 다른 이름으로 설정해도 된다.

profile
하루를 열심히
post-custom-banner

0개의 댓글