접근자 프로퍼티(accessor property)
접근자 프로퍼티는 'getter(획득자)'와 ‘setter(설정자)’ 메서드로 표현된다. 객체 리터럴 안에서 getter와 setter 메서드는 get과 set으로 나타낼 수 있다.
class User {
constructor(firstName, lastName, age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
get age() {
return this._age;
}
set age(value) {
if (value < 0) {
throw Error('age can not be negative');
}
this._age = value < 0 ? 0 : value;
this._age = value;
}
}
const user1 = new User('ste', 'job', -1);
console.log(user1.age);
let obj = {
a: 1,
b: 2,
get num() {
return `${this.a} ${this.b}`;
},
set num(value) {
if (value < 0) {
return (this.a = value + 5);
}
this.a = value;
},
};
obj.num = -1;
console.log(obj.a);