[TIL] 08 OOP Instantiation Pattern - Functional Shared

유민규·2020년 8월 17일
0

Today-I-Learned

목록 보기
8/10
post-thumbnail

Instantiation Pattern - Functional Shared

Functional 방식은 인스턴스를 생설할 때마다 모든 메소드를 someInstance로 할당하므로, 각각의 인스턴스들이 메소드의 수만큼 메모리를 더 차지한다. 하지만 Functional Shared 방식을 사용한다면, someMethod라는 객체에 있는 메소드들의 메모리 주소만을 참조하기 때문에 메모리 효율이 좋아진다.

코드 구현

// Car 함수의 someInstance와 someMethods를 합치는 extend 함수
let extend = function (to, from) {
    for(let key in from){
        to[key] = from[key];
    }
};

// 사용할 메소드들을 담기위해 someMethods 객체 생성
let someMethods = {};

//someMethod에 들어갈 method들
someMethod.move = function () {
  this.position += 1;
};
let Car = function (position) {
  // someInstance는 position이라는 property만을 갖고 있다.
  let someInstance = {
    position: position,
  };
  return someInstance;
};
let car1 = Car(5);
let car2 = Car(10);

Photo by Joshua Rodriguez on Unsplash

profile
올라운더가 되고싶은 욕심많은 백엔드 개발자

0개의 댓글