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