Programing/Design Patterns

Javascript Mix-In pattern 믹스-인 패턴 여러 객체를 한 객체로 만들기

리커니 2022. 3. 13. 21:26
반응형

Javascript Mix-In pattern 믹스-인 패턴 여러 객체를 한 객체로 만들기

 

Mix-In 패턴은 여러 객체의 정보를 한 객체로 섞는 패턴입니다.

 

예를들어 복수의 Object들을 하나의 새로운 Object로 만드는 방법이죠.

 

const mix = function(){
    const child = {};
    for(let arg in arguments){
        for(let prop in arguments[arg]){
            child[prop] = arguments[arg][prop];
        }
    }
    return child;
}

 

위의 코드를 보시면 arguments 개수 만큼 반복하면서 arguments의 value값을 child Object에 추가해주어 리턴해줍니다.

그럼 복수개의 오브젝트를 mix 함수의 매개변수로 넘겨 결과를 확인해보겠습니다.

 

const aObj = {
    name: "aljjabaegi"
}
const bObj = {
    protocol: "http://"
}
const cObj = {
    dns: "co.kr"
}
const mixedObj = mix(aObj, bObj, cObj);
console.log(mixedObj);

 

 

파라메터로 전달된 객체들의 Property 값 들이 복사되어 새로운 객체가 생성된 것을 확인하실 수 있습니다.

이는 단순히 객체들의 프로퍼티 값을 복사해서 새로운 객체를 만든 것이기 때문에

파라메터로 넘겨진 객체들의 값을 변경하여도 mixedObj는 영향을 받지 않습니다. 

 

파라메터로 넘겨진 오브젝트들 중 같은 Property key를 가지고 있다면 나중에 넘겨진 파라메터의 Property value로

덮어씌워지게 됩니다.

반응형