Mixins
Tuesday, September 15th, 2009Taking the idea of inheritance by property copying a step further, consider this this mixin implementation.
Instead of copying from one object, you can copy from any number of objects.
The implementation is pretty simple - just loop through arguments
and copy every property of every object passed to the function.
function mixInThese() { var arg, prop, child = {}; for (arg = 0; arg < arguments.length; arg++) { for (prop in arguments[arg]) { child[prop] = arguments[arg][prop]; } } return child; }
Here's how to use it. Pass any number of objects and you and up with a new object that has the properties of them all.
var cake = mixInThese( {eggs: 2, large: true}, {butter: 1, salted: true}, {flour: "3 cups"}, {sugar: "sure!"} );