명령어의 목록을 나열 (절차 지향)
➡️ 하나의 문제 해결을 위한 독립된 단위인 객체 (객체 지향)
class Person {
constructor(name, email) {
this.name = name;
this.email = email;
}
introduce() {
return `Hello my name is ${this.name}`;
}
}
class Client extends Person {
constructor(name, email, phone, address) {
super(name, email);
this.phone = phone;
this.address = address;
}
}
const john = new Client('john', 'john@abc.com', '010-000-1111', '서울');
console.log(john);
// Object.create()
function Person(name, email, birthday) {
let person = Object.create(personsPrototype);
person.name = name;
person.email = email;
person.birthday = new Date(birthday);
return person;
}
class PaymentGateway {
constructor() {
this.connect();
}
connect() {
// 결제 제공업체에 연결
// ..
}
pay(amount) {
// ..
}
refund(amount) {
// ..
}
}
class Paypal extends PaymentGateway {
pay(amount) {
// 페이팔 전용 로직을 구현해야 합니다.
}
refund(amount) {
// 페이팔 전용 로직을 구현해야 합니다.
}
connect() {
// 페이팔 전용 로직을 구현해야 합니다.
}
}
class Visa extends PaymentGateway {
pay(amount) {
// Visa 전용 로직을 구현해야 합니다.
}
refund(amount) {
// Visa 전용 로직을 구현해야 합니다.
}
connect() {
// Visa 전용 로직을 구현해야 합니다.
}
}
constructor:
this