Here is _.extend from underscore.
// Extend a given object with all the properties in passed-in object(s).
_.extend = function(obj) {
each(slice.call(arguments, 1), function(source) {
if (source) {
for (var prop in source) {
obj[prop] = source[prop];
}
}
});
return obj;
};
The function call
expects a this value followed by a list of arguments.
If the only argument passed is '1', then slice will return an array omitting the first item.
However, how can arguments be used as a this value as defined my MDN.
MDN