Q:

why do i need to combine two objects into one?

pm.mixin = function(/*Object*/ obj, /*Object...*/ props){
        if(!obj){ obj = {}; }
        for(var i=1, l=arguments.length; i<l; i++){
            mixin(obj, arguments[i]);
        }
        return obj; // Object
};

This a dojo mixin function http://docs.dojocampus.org/dojo/mixin#id2 
Can anyone say me on what scenario this would be useful for me, why do i need to combine two objects into one. What is arguments.length, i don't even pass this... 

A:

Can anyone say me on what scenario this would be useful for me, why do i need to combine two objects into one.

When subclassing
When you want to override defaults as per the example you linked to in the question!

What is arguments.length

The arguments object contains the arguments passed to a function.

