class User {
constructor(name, email, password) {
this.name = name;
this.email = email;
this.password = password;
}
buy(item) {
conosole.log(`${this.name} buys ${item.name}`);
}
get email() {
return this._email;
}
set email (address) {
if(address.includes('@')) {
this._email = address;
} else {
throw new Error('유효하지 않은 이메일 주소입니다.');
}
}
}
const item = {
name: '에어팟맥스',
price: '580,000원'
}
const sonny = new User('영산', 'abcd@google.com', '12345');
sonny.email = 'zeromountain';
sonny.email = 'zeromountain@google.com'
console.log(sonny);
캡슐화
- setter 메서드를 사용해서 이메일 검증을 한다.
- getter 메서드를 사용해서 이메일을 가져온다.
- 캡슐화를 하면 객체에 직접 접근하는 것을 막을 수 있다 => 보디가드 역할