function() {
            
            var target = arguments[0];
            
            for (var i = 1, l = arguments.length; i < l; i++) {
                
                var extension = arguments[i];
                
                // Only functions and objects can be mixined.

                if ((Object(extension) !== extension) &&
                    !_.isFunction(extension) &&
                    (extension === null || extension === undefined)) {

                    continue;
                }

                _.each(extension, function(copy, key) {
                    
                    if (this.mixin.deep && (Object(copy) === copy)) {

                        if (!target[key]) {

                            target[key] = _.isArray(copy) ? [] : {};
                        }
                        
                        this.mixin(target[key], copy);
                        return;
                    }
                    
                    if (target[key] !== copy) {
                        
                        if (!this.mixin.supplement || !target.hasOwnProperty(key)) {
                            
	                    target[key] = copy;
                        }

                    }
                    
                }, this);
            }
            
            return target;
        }
function() {
            
            var target = arguments[0];
            
            for (var i = 1, l = arguments.length; i < l; i++) {
                
                var extension = arguments[i];
                
                

                if ((Object(extension) !== extension) &&
                    !_.isFunction(extension) &&
                    (extension === null || extension === undefined)) {

                    continue;
                }

                _.each(extension, function(copy, key) {
                    
                    if (this.mixin.deep && (Object(copy) === copy)) {

                        if (!target[key]) {

                            target[key] = _.isArray(copy) ? [] : {};
                        }
                        
                        this.mixin(target[key], copy);
                        return;
                    }
                    
                    if (target[key] !== copy) {
                        
                        if (!this.mixin.supplement || !target.hasOwnProperty(key)) {
                            
	                    target[key] = copy;
                        }

                    }
                    
                }, this);
            }
            
            return target;
        }
function ( ) { var target = arguments [ 0 ] ; for ( var i = 1 , l = arguments . length ; i < l ; i ++ ) { var extension = arguments [ i ] ; // Only functions and objects can be mixined. if ( ( Object ( extension ) !== extension ) && ! _ . isFunction ( extension ) && ( extension === null || extension === undefined ) ) { continue ; } _ . each ( extension , function ( copy , key ) { if ( this . mixin . deep && ( Object ( copy ) === copy ) ) { if ( ! target [ key ] ) { target [ key ] = _ . isArray ( copy ) ? [ ] : { } ; } this . mixin ( target [ key ] , copy ) ; return ; } if ( target [ key ] !== copy ) { if ( ! this . mixin . supplement || ! target . hasOwnProperty ( key ) ) { target [ key ] = copy ; } } } , this ) ; } return target ; }
Copy all the properties to the first argument from the following arguments. All the properties will be overwritten by the properties from the following arguments. Inherited properties are ignored.
Copy all the properties to the first argument from the following arguments . All the properties will be overwritten by the properties from the following arguments . Inherited properties are ignored .