jQuery does reproduce loops:
var father = {
child : {}
}
father.child.father = father;
$.extends( {}, father )
The problem here is you are telling jQuery to recurse into things it
shouldn't be recursing into.
$.extends( true, .. ); is for when you want to duplicate nested objects,
rather than reference the same objects.
By definition, you are asking jQuery to:
Take {}
Take the keys in father:
for the child key:
create an object to make a duplicate using and place that onto {}.child
recurse into child:
for the father key:
create an object to make a duplicate using and place that onto
child.father
recurse into father:
for the child key:
create an object to make a duplicate using and place
that onto father.child
recurse into child:
...
There is no problem here, jQuery is following your orders just as you
give them.
If jQuery were to try and track circular references it would:
A) Make .extends extremely inefficient because it would have to store
just about everything it touches and make sure it doesn't recurse
B) No longer create duplicate objects as it was told to
~Daniel Friesen (Dantman, Nadir-Seen-Fire) [http://daniel.friesen.name]
ludovic wrote:
> Hi,
> I've got loops in my objects relations. Example :
>
> var father = {
> child : {}
> }
>
> father.child.father = father;
>
> $.extends( true, {}, father ) causes a infinite loop.
>
> Jquery should reproduce loops.
>
> Regards,
> Ludovic
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"jQuery Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/jquery-dev?hl=en
-~----------~----~----~----~------~----~------~--~---