<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Deep Copy in JavaScript</title>
	<atom:link href="http://blog.imaginea.com/deep-copy-in-javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.imaginea.com/deep-copy-in-javascript/</link>
	<description>Technical Weblog from Imaginea Engineers</description>
	<lastBuildDate>Tue, 21 Feb 2012 06:24:59 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
	<item>
		<title>By: Dreaklyerurry</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-535</link>
		<dc:creator>Dreaklyerurry</dc:creator>
		<pubDate>Wed, 15 Dec 2010 12:13:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-535</guid>
		<description>Exelent posts

Thank you for posting!</description>
		<content:encoded><![CDATA[<p>Exelent posts</p>
<p>Thank you for posting!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bogs</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-507</link>
		<dc:creator>Bogs</dc:creator>
		<pubDate>Wed, 01 Dec 2010 22:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-507</guid>
		<description>function clone(srcInstance)
{
	if(typeof(srcInstance) != &#039;object&#039; &#124;&#124; srcInstance == null)
		return srcInstance;
	var newInstance = srcInstance.constructor();
	for(var i in srcInstance)
		newInstance[i] = clone(srcInstance[i]);
	return newInstance;
}

// this pass your test exemple and is very shorter version  ;)</description>
		<content:encoded><![CDATA[<p>function clone(srcInstance)<br />
{<br />
	if(typeof(srcInstance) != &#8216;object&#8217; || srcInstance == null)<br />
		return srcInstance;<br />
	var newInstance = srcInstance.constructor();<br />
	for(var i in srcInstance)<br />
		newInstance[i] = clone(srcInstance[i]);<br />
	return newInstance;<br />
}</p>
<p>// this pass your test exemple and is very shorter version  <img src='http://blog.imaginea.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mu</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-453</link>
		<dc:creator>mu</dc:creator>
		<pubDate>Fri, 08 Oct 2010 03:23:12 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-453</guid>
		<description>@Saravanan: we&#039;re talking about deep copy of JavaScript objects here, not DOM nodes.</description>
		<content:encoded><![CDATA[<p>@Saravanan: we&#8217;re talking about deep copy of JavaScript objects here, not DOM nodes.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Saravanan</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-396</link>
		<dc:creator>Saravanan</dc:creator>
		<pubDate>Tue, 06 Jul 2010 12:46:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-396</guid>
		<description>Instead of writing own methods we can try

document.cloneNode(objecttobecloned)

or

object.cloneNode(objecttobecloned)</description>
		<content:encoded><![CDATA[<p>Instead of writing own methods we can try</p>
<p>document.cloneNode(objecttobecloned)</p>
<p>or</p>
<p>object.cloneNode(objecttobecloned)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cv</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-305</link>
		<dc:creator>cv</dc:creator>
		<pubDate>Wed, 23 Sep 2009 17:15:00 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-305</guid>
		<description>...and it works better that way with deeply-nested structures.</description>
		<content:encoded><![CDATA[<p>&#8230;and it works better that way with deeply-nested structures.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cv</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-304</link>
		<dc:creator>cv</dc:creator>
		<pubDate>Wed, 23 Sep 2009 17:14:22 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-304</guid>
		<description>You can reduce to a single function and one loop by refactoring to use beget.</description>
		<content:encoded><![CDATA[<p>You can reduce to a single function and one loop by refactoring to use beget.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Daniel</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-180</link>
		<dc:creator>Daniel</dc:creator>
		<pubDate>Thu, 12 Mar 2009 06:49:06 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-180</guid>
		<description>I appreciate the need to deep copy an object...however unless its absolutely necessary, i&#039;d recommend designing your code to benefit from references</description>
		<content:encoded><![CDATA[<p>I appreciate the need to deep copy an object&#8230;however unless its absolutely necessary, i&#8217;d recommend designing your code to benefit from references</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jj</title>
		<link>http://blog.imaginea.com/deep-copy-in-javascript/#comment-52</link>
		<dc:creator>jj</dc:creator>
		<pubDate>Fri, 26 Sep 2008 13:41:37 +0000</pubDate>
		<guid isPermaLink="false">http://blog.imaginea.com/?p=7#comment-52</guid>
		<description>The above does not handle nulls properly, here is another version 

var ObjectHandler = {
    //public method
    getCloneOfObject: function(oldObject,level) {
        var tempClone;

        if ( level == undefined )
            level = 0;

        if ( oldObject == null )
            tempClone = null;
        else if ( typeof(oldObject) == &quot;object&quot; &amp;&amp; oldObject.length != undefined )
        {
            //array
            tempClone = new Array;
            for ( var i = 0; i &lt; oldObject.length; ++i )
            {
                tempClone[tempClone.length] = ObjectHandler.getCloneOfObject(oldObject[i],level + 1);
            }
        }
        else if ( typeof(oldObject) == &quot;object&quot;  )
        {
            //object
            tempClone = new Object;
            for ( var i in  oldObject )
            {
                tempClone[i] = ObjectHandler.getCloneOfObject(oldObject[i],level + 1);
            }
        }
        else
        {
            //plain
            print (&quot;Level=&quot; + level + &quot; Plain=&quot; + oldObject);
            tempClone = oldObject;
        }

        return tempClone;
    }
};</description>
		<content:encoded><![CDATA[<p>The above does not handle nulls properly, here is another version </p>
<p>var ObjectHandler = {<br />
    //public method<br />
    getCloneOfObject: function(oldObject,level) {<br />
        var tempClone;</p>
<p>        if ( level == undefined )<br />
            level = 0;</p>
<p>        if ( oldObject == null )<br />
            tempClone = null;<br />
        else if ( typeof(oldObject) == &#8220;object&#8221; &amp;&amp; oldObject.length != undefined )<br />
        {<br />
            //array<br />
            tempClone = new Array;<br />
            for ( var i = 0; i &lt; oldObject.length; ++i )<br />
            {<br />
                tempClone[tempClone.length] = ObjectHandler.getCloneOfObject(oldObject[i],level + 1);<br />
            }<br />
        }<br />
        else if ( typeof(oldObject) == &#8220;object&#8221;  )<br />
        {<br />
            //object<br />
            tempClone = new Object;<br />
            for ( var i in  oldObject )<br />
            {<br />
                tempClone[i] = ObjectHandler.getCloneOfObject(oldObject[i],level + 1);<br />
            }<br />
        }<br />
        else<br />
        {<br />
            //plain<br />
            print (&#8220;Level=&#8221; + level + &#8221; Plain=&#8221; + oldObject);<br />
            tempClone = oldObject;<br />
        }</p>
<p>        return tempClone;<br />
    }<br />
};</p>
]]></content:encoded>
	</item>
</channel>
</rss>

