JavaScript Patterns 6.6 Mix-ins

Loop through arguments and copy every property of every object passed to the function. And the result will be a new object that has the properties of all the source objects. 

function mix() {

    var arg, prop, child = {};

    for (arg = 0; arg < arguments.length; arg += 1) {

        for (prop in arguments[arg]) {

            if (arguments[arg].hasOwnProperty(prop)) {

                child[prop] = arguments[arg][prop];

            }

        }

    }

    return child;

}

var cake = mix({

    eggs: 2,

    large: true

}, {

    butter: 1,

    salted: true

}, {

    flour: "3 cups"

}, {

    sugar: "sure!"

});

console.dir(cake);

JavaScript Patterns 6.6 Mix-ins

References: 

JavaScript Patterns - by Stoyan Stefanov (O`Reilly)