function _fnExtend( out, extender, breakRefs )
		{
			var val;
		
			for ( var prop in extender ) {
				if ( extender.hasOwnProperty(prop) ) {
					val = extender[prop];
		
					if ( $.isPlainObject( val ) ) {
						if ( ! $.isPlainObject( out[prop] ) ) {
							out[prop] = {};
						}
						$.extend( true, out[prop], val );
					}
					else if ( breakRefs && prop !== 'data' && prop !== 'aaData' && Array.isArray(val) ) {
						out[prop] = val.slice();
					}
					else {
						out[prop] = val;
					}
				}
			}
		
			return out;
		}
/**
		 * Extend objects - very similar to jQuery.extend, but deep copy objects, and
		 * shallow copy arrays. The reason we need to do this, is that we don't want to
		 * deep copy array init values (such as aaSorting) since the dev wouldn't be
		 * able to override them, but we do want to deep copy arrays.
		 *  @param {object} out Object to extend
		 *  @param {object} extender Object from which the properties will be applied to
		 *      out
		 *  @param {boolean} breakRefs If true, then arrays will be sliced to take an
		 *      independent copy with the exception of the `data` or `aaData` parameters
		 *      if they are present. This is so you can pass in a collection to
		 *      DataTables and have that used as your data source without breaking the
		 *      references
		 *  @returns {object} out Reference, just for convenience - out === the return.
		 *  @memberof DataTable#oApi
		 *  @todo This doesn't take account of arrays inside the deep copied objects.
		 */
Extend objects - very similar to jQuery.extend, but deep copy objects, and
shallow copy arrays. The reason we need to do this, is that we don't want to
deep copy array init values (such as aaSorting) since the dev wouldn't be
able to override them, but we do want to deep copy arrays.
@param {object} out Object to extend
@param {object} extender Object from which the properties will be applied to
out
@param {boolean} breakRefs If true, then arrays will be sliced to take an
independent copy with the exception of the `data` or `aaData` parameters
if they are present. This is so you can pass in a collection to
DataTables and have that used as your data source without breaking the
references
@returns {object} out Reference, just for convenience - out === the return.
@memberof DataTable#oApi
@todo This doesn't take account of arrays inside the deep copied objects.
Extend objects - very similar to jQuery . extend but deep copy objects and shallow copy arrays . The reason we need to do this is that we don ' t want to deep copy array init values ( such as aaSorting ) since the dev wouldn ' t be able to override them but we do want to deep copy arrays . @param { object } out Object to extend @param { object } extender Object from which the properties will be applied to out @param { boolean } breakRefs If true then arrays will be sliced to take an independent copy with the exception of the ` data ` or ` aaData ` parameters if they are present . This is so you can pass in a collection to DataTables and have that used as your data source without breaking the references @returns { object } out Reference just for convenience - out === the return . @memberof DataTable#oApi @todo This doesn ' t take account of arrays inside the deep copied objects .
function _fnExtend( out, extender, breakRefs )
		{
			var val;
			for ( var prop in extender ) {
				if ( extender.hasOwnProperty(prop) ) {
					val = extender[prop];
					if ( $.isPlainObject( val ) ) {
						if ( ! $.isPlainObject( out[prop] ) ) {
							out[prop] = {};
						}
						$.extend( true, out[prop], val );
					}
					else if ( breakRefs && prop !== 'data' && prop !== 'aaData' && Array.isArray(val) ) {
						out[prop] = val.slice();
					}
					else {
						out[prop] = val;
					}
				}
			}
			return out;
		}
function _fnExtend ( out , extender , breakRefs ) { var val ; for ( var prop in extender ) { if ( extender . hasOwnProperty ( prop ) ) { val = extender [ prop ] ; if ( $ . isPlainObject ( val ) ) { if ( ! $ . isPlainObject ( out [ prop ] ) ) { out [ prop ] = { } ; } $ . extend ( true , out [ prop ] , val ) ; } else if ( breakRefs && prop !== 'data' && prop !== 'aaData' && Array . isArray ( val ) ) { out [ prop ] = val . slice ( ) ; } else { out [ prop ] = val ; } } } return out ; }
Extend objects - very similar to jQuery.extend, but deep copy objects, and
 shallow copy arrays.
Extend objects - very similar to jQuery . extend but deep copy objects and shallow copy arrays .