get이라는 키워드로 값을 리턴하고 set이라는 키워드로 값을 설정한다.
사용자가 값을 잘못 사용해도 조금 더 방어적으로 지킬 수 있도록 함.class User { constructor(firstName, lastName, number){ this.firstName = firstName; this.lastName = lastName; this.number = number; } get number() { return this._number; } set number(value){ if(value < 0) { throw Error('The number is negative!!') } this._number = value; //this._number = value < 0 ? 0 : value; } }
getter setter 설정하게 되면 게터와 세터 안의 값을 this.number으로 값이
세팅되 있다면, constructor 안에서 number 값을 조회하면 get함수 set함수를
부르기 때문에 콜스택이 차버린다. 따라서 getter와 setter 내부에는 보통 _언더바를
활용해 설정함.