ajax options parameter

ajax options parameter

The ajax options parameter, unlike every other(?) options parameter,
is used "in place".
    ajax: function( s ) {
        // Extend the settings, but re-extend 's' so that it can be
        // checked again later (in the test suite, specifically)
        s = jQuery.extend(true, s, jQuery.extend(true, {},
jQuery.ajaxSettings, s));
This means you cant use the same options object (with modifications)
to successive calls to $.ajax. ie, I'd like to do:
var ajOpts = {...};
$.each(foo, function() { ajOpts.data.id = this.id; $.ajax(ajOpts) });
This would have worked if ajax were defined as:
    ajax: function( s ) {
        s = jQuery.extend(true, {}, jQuery.ajaxSettings, s);
which seems to be the "standard" way of doing things.
The comments say its done this way for the test suite - but surely the
test suite could just use a callback (eg beforeSend) to get the
modified object back?
Or am I just wrong to think that this should work?
Mark
--