I don't get your point. I am talking about what is extended
recursively, not what is passed as argument.

If you have something like this:

var options = {
  nodes: jQuery("div"),
  num: 4,
  date: new Date
};

jQuery.extend(true, options, {
 nodes: jQuery("#content"),
 num: new Number(5),
 date: new Date
});

then options.node would be the same jQuery("#content") object but now
with all jQuery methods copied inside itself, options.num will remain
4, options.date remain unchanged.

I think this behavior is not what someone would expect (I hope).



On Nov 11, 5:09 am, John Resig <jere...@gmail.com> wrote:
> If someone wants to pass in a random object to be extended we won't
> stop them. So yeah, someone could do:
>
> jQuery.extend([1,2], [3]) and get [3,2] as a result - not sure why you
> would want to, though. I can't think of a reason to explicitly prevent
> this behavior, at least.
>
> (On a related note I've renamed isObject to isObjectLiteral.)
>
> --John
>
> On Tue, Nov 10, 2009 at 9:10 PM, Robert Katić <robert.ka...@gmail.com> wrote:
> > Wat a hell is going here?
>
> >  // Recurse if we're merging object values
> > if ( deep && copy && typeof copy === "object" && !copy.nodeType ) {
> >  var clone;
>
> >  if ( src ) {
> >    clone = src;
> >  } else if ( jQuery.isArray(copy) ) {
> >    clone = [];
> >  } else if ( jQuery.isObject(copy) ) {
> >    clone = {};
> >  } else {
> >    clone = copy;
> >  }
>
> >  // Never move original objects, clone them
> >  target[ name ] = jQuery.extend( deep, clone, copy );
>
> > You are going to extend with any object including a Date, a String, a
> > Number... (ah yes, excluding nodes).
>
> > You are going to extend (with) arrays? [1,2] and [4] to obtain [4,2].
> > Really?
>
> > If an object is not an array nor an object literal then extend object
> > with itself???
>
> > The only things to extend recursively are objects literals to me:
>
> > if ( deep && copy && jQuery.isObject(copy) && (!src || jQuery.isObject
> > (src)) ) {
> >  target[ name ] = jQuery.extend( deep, src || {}, copy );
> > }
>
> > Am I loosing my mind? :)
>
> > --
>
> > You received this message because you are subscribed to the Google Groups 
> > "jQuery Development" group.
> > To post to this group, send email to jquery-...@googlegroups.com.
> > To unsubscribe from this group, send email to 
> > jquery-dev+unsubscr...@googlegroups.com.
> > For more options, visit this group 
> > athttp://groups.google.com/group/jquery-dev?hl=.

--

You received this message because you are subscribed to the Google Groups 
"jQuery Development" group.
To post to this group, send email to jquery-...@googlegroups.com.
To unsubscribe from this group, send email to 
jquery-dev+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/jquery-dev?hl=.


Reply via email to