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)
转载于:https://www.cnblogs.com/haokaibo/p/Mix-ins.html