[jQuery] Re: Deep $.extend() doesn't work with Date objects

2009-02-08 Thread Tin

I can see why it is working the way it does, but it seems like a clear
and easily fixable bug to me.  $.extend() could be made aware of the
intrinsic JavaScript objects so that they are copied (i.e. recreated)
properly.


On Feb 5, 3:11 pm, Stephan Veigl stephan.ve...@gmail.com wrote:
 Hi,

 this is because jQuery creates anonymous objects for the clones and
 copies the object properties. For the Date object there are no public
 properties, so only the empty object hull is created.

 But you are right, not copying Dates correctly is a bit strange.
 If you disable the copy deep flag, your date will be in the clone, but
 in this case it's no clone, but a reference to the original date
 object.

 by(e)
 Stephan

 2009/2/5 Tin michael.leib...@gmail.com:





  Hi guys,
  I'm trying to create a deep copy of an object with $.extend(true, {},
  obj), but I've noticed that all of the dates get copied as a simple
  Object with no properties.  Here's a sample code that demonstrates it:

  var clone = $.extend(true, {}, {myDate:new Date()});

  // clone.myDate returns {}
  // clone.myDate.toString() - [object Object]

  Any ideas on why this is happening?


[jQuery] Re: Deep $.extend() doesn't work with Date objects

2009-02-05 Thread Stephan Veigl

Hi,

this is because jQuery creates anonymous objects for the clones and
copies the object properties. For the Date object there are no public
properties, so only the empty object hull is created.

But you are right, not copying Dates correctly is a bit strange.
If you disable the copy deep flag, your date will be in the clone, but
in this case it's no clone, but a reference to the original date
object.


by(e)
Stephan



2009/2/5 Tin michael.leib...@gmail.com:

 Hi guys,
 I'm trying to create a deep copy of an object with $.extend(true, {},
 obj), but I've noticed that all of the dates get copied as a simple
 Object with no properties.  Here's a sample code that demonstrates it:

 var clone = $.extend(true, {}, {myDate:new Date()});

 // clone.myDate returns {}
 // clone.myDate.toString() - [object Object]

 Any ideas on why this is happening?