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);
References:
JavaScript Patterns - by Stoyan Stefanov (O`Reilly)