class Sample {
this.a = 1
setA(number) {
this.a = number
}
}
const sample = new Sample()
sample.a = 1 // case1
sample.setA(1) // case2
이렇게 a 프로퍼티에 직접 입력하는 것과 setter를 쓰는 것중에
setter로직이 변경 되는 경우, 예를 들어 넘버를 문자열로 변경해야한다거나 하는 일이 생긴다면 setter는 메소드만 바꾸면 된다
setA(number){
number = String(numebr)
this.a. = number
}
하지만 프로퍼티를 직접 변경하는 로직의 경우 프로젝트 전체에 있는 모든 직접 변경 로직을 수정해야한다
const a = () => {
console.log("a 시작");
b();
console.log("a 끝");
};
const b = async () => {
console.log("b 시작");
await c();
console.log("b 끝");
};
const c = async () => {
console.log("c 시작");
await d();
console.log("c 끝");
};
const d = () => {
console.log("d 시작");
console.log("d 끝");
};
a();
// a 시작
// b 시작
// c 시작
// d 시작
// d 끝
// a 끝
// c 끝
// b 끝