JavaScript OOP에서 가상 속성의 세터
가상 속성의 게터뿐만 아니라 세터도 만들 수 있습니다. 이 경우 세터 내부에서 데이터를 받아와서 분할하고 해당 부분들을 필요한 공개 속성에 기록해야 합니다.
한번 시도해 봅시다. 가상 속성
full의 세터를 구현합니다:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
get full() {
return this.name + ' ' + this.surn;
}
set full(full) {
let [name, surn] = full.split(' ');
this.name = name;
this.surn = surn;
}
}
구조 분해 할당을 단순화합니다:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
get full() {
return this.name + ' ' + this.surn;
}
set full(full) {
[this.name, this.surn] = full.split(' ');
}
}
클래스 객체를 생성합니다:
let user = new User('john', 'smit');
우리의 가상 세터에 데이터를 기록합니다:
user.full = 'eric jons';
객체의 속성이 변경되었는지 확인합니다:
console.log(user.name); // 'eric'
console.log(user.surn); // 'jons'
console.log(user.full); // 'eric jons'