javascript pattern(3) - Prototype pattern

July 19, 2019

Prototype pattern은 Object 기반의 창조적 디자인 패턴입니다. 이 패턴은 일종의 골격을 사용하여 새로운 객체를 생성하거나 인스턴스화 하게 됩니다.

Prototype 패턴은 고전적인 객체 지향의 상속 대신 prototype 상속을 사용하기 때문에 javascipt에서 특히 중요하며 도움이 되며, 이는 javascript에서의 강점이며 기본적으로 지원하는 개념입니다.

예제를 살펴보겠습니다.

// using Object.create as was recommended by ES5 standard
const car = {
  noOfWheels: 4,
  start() {
    return 'started';
  },
  stop() {
    return 'stopped';
  },
};

// Object.create(proto[, propertiesObject])

const myCar = Object.create(car, { owner: { value: 'John' } });

console.log(myCar.__proto__ === car); // true

위의 예제에서는 prototype으로 사용하는 car 객체를 사용하며, Javascript의 Object.create를 사용하여 myCar 객체를 새로 만들고 새 객체에 소유자를 정의합니다.

...