about jQuery.makeArray

about jQuery.makeArray

  1. makeArray: function( array, results ) {
    var ret = results || [];

    if ( array != null ) {
    // The window, strings (and functions) also have 'length'
    // The extra typeof function check is to prevent crashes
    // in Safari 2 (See: #3039)
    if ( array.length == null || typeof array === "string" || 
    jQuery.isFunction(array) || (typeof array !== "function" && array.setInterval) ) {
    push.call( ret, array );
    } else {
    jQuery.merge( ret, array );
    }
    }

    return ret;
    },
when the argument arr is actually an array, it can be faster :
  1. // results is for internal usage only
    makeArray: function( array, results ) {
    var ret = results || [];
    if ( array != null ) {
    if ( jQuery.isArray(array) )
    {
    return slice.call(array,0);
    }
    // The window, strings (and functions) also have 'length'
    // The extra typeof function check is to prevent crashes
    // in Safari 2 (See: #3039)
    if ( array.length == null || typeof array === "string" || 
    jQuery.isFunction(array) || (typeof array !== "function" && array.setInterval) ) {
    push.call( ret, array );
    } else {
    jQuery.merge( ret, array );
    }
    }

    return ret;
    },