7-2. 컬렉션 캡슐화하기
적용 시점
절차
예시
❌Before
class Person {
constructor({ name, nicknames }) {
this._name = name;
this._nicknames = [...nicknames];
}
get name() { return this._name; }
get nicknames() { return this._nicknames; }
set nicknames(nicknames) { this._nicknames = nicknames ; }
}
// 사고 사례 1. nicknames를 추가해야 되는데 실수로 세터를 이용해서 누구든 Person 클래스를 수정할 수 있다.
const nicknames = createBasicCourses(fileName);
aPerson.nicknames = nicknames;
// 사고 사례 2. 요건 몰랐지? 요렇게하면 컬렉션 수정됨
aPerson.nicknames.push('babo');
class ⭕After
Last updated