src/ImageComparison.js
function (target, objects, options) {

            for (var object in objects) {
                if (objects.hasOwnProperty(object)) {
                    recursiveMerge(target, objects[object]);
                }
            }

            function recursiveMerge(target, object) {
                for (var property in object) {
                    if (object.hasOwnProperty(property)) {
                        var current = object[property];
                        if (utils.getConstructor(current) === 'Object') {
                            if (!target[property]) {
                                target[property] = {};
                            }
                            recursiveMerge(target[property], current);
                        }
                        else {
                            // clearEmpty
                            if (options.clearEmpty) {
                                if (current == null) {
                                    continue;
                                }
                            }
                            target[property] = current;
                        }
                    }
                }
            }

            return target;
        }
function (target, objects, options) {

            for (var object in objects) {
                if (objects.hasOwnProperty(object)) {
                    recursiveMerge(target, objects[object]);
                }
            }

            function recursiveMerge(target, object) {
                for (var property in object) {
                    if (object.hasOwnProperty(property)) {
                        var current = object[property];
                        if (utils.getConstructor(current) === 'Object') {
                            if (!target[property]) {
                                target[property] = {};
                            }
                            recursiveMerge(target[property], current);
                        }
                        else {
                            // clearEmpty
                            if (options.clearEmpty) {
                                if (current == null) {
                                    continue;
                                }
                            }
                            target[property] = current;
                        }
                    }
                }
            }

            return target;
        }
function ( target , objects , options ) { for ( var object in objects ) { if ( objects . hasOwnProperty ( object ) ) { recursiveMerge ( target , objects [ object ] ) ; } } function recursiveMerge ( target , object ) { for ( var property in object ) { if ( object . hasOwnProperty ( property ) ) { var current = object [ property ] ; if ( utils . getConstructor ( current ) === 'Object' ) { if ( ! target [ property ] ) { target [ property ] = { } ; } recursiveMerge ( target [ property ] , current ) ; } else { // clearEmpty if ( options . clearEmpty ) { if ( current == null ) { continue ; } } target [ property ] = current ; } } } } return target ; }
Native extend object
@param target
@param objects
@param options
@returns {*}
Native extend object