프로토타입 (prototype) 패턴

목적

객체 생성에 관련된 패턴입니다.
생성할 객체들의 타입이 프로토타입인 인스턴스로부터 결정되도록 하며, 인스턴스는 새 객체를 만들기 위해 자신을 복제(clone)하게 된다

구조

코드 샘플

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function CustomerPrototype(proto) {
this.proto = proto;

this.clone = function () {
var customer = new Customer();

customer.first = proto.first;
customer.last = proto.last;
customer.status = proto.status;

return customer;
};
}

function Customer(first, last, status) {

this.first = first;
this.last = last;
this.status = status;

this.say = function () {
alert("name: " + this.first + " " + this.last +
", status: " + this.status);
};
}

function run() {

var proto = new Customer("n/a", "n/a", "pending");
var prototype = new CustomerPrototype(proto);

var customer = prototype.clone();
customer.say();
}