이런 객체가 있다고 가정해보자
const numbers = {
_a: 1,
_b: 2,
sum: 3,
calculate() {
console.log('calculate');
this.sum = this._a + this._b;
},
get a() {
return this._a;
},
get b() {
return this._b;
},
set a(value) {
this._a = value;
this.calculate();
},
set b(value) {
this._b = value;
this.calculate();
}
}
getter함수는 함수 앞에 get이라는 문구를 붙여준다.
함수 안에 반드시 조회하고자 하는 값을 반환해줘야 한다.
getter함수는 특정 값을 조회할 때 사용한다.
console.log(numbers.a); // 1
numbers.a()가 아닌, numbers.a로 조회를 해도 함수가 실행 되고
우리가 조회하기 위해 반환 하고자 하는 결과값이 출력된다!!
setter함수는 함수 앞에 set이라는 문구를 붙여준다.
반드시 파라미터를 사용해야 한다.
setter함수는 특정 값을 바꾸고 싶을때 사용한다.
numbers.a = 7; console.log(numbers.sum); //9
set a() 함수의 파라미터값에 7이 들어가게 되므로,
._a = 7이 되고 calculate함수가 호출 된다.
calculate함수 안에 연산된 sum의 값은 9가 된다.
getter함수와 setter함수를 사용하지 않고서도 값을 조회하고 바꿀 수 있지만, 바꾸거나 조회할때 한 만큼 계속 console이 찍히더라는것을 알았다.