<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Deerua about Coding: последние заметки с тегом &amp;laquo;clone&amp;raquo;</title><link>http://deer.org.ua/keywords/clone/</link><description></description><language>ru</language><generator>e2 (http://blogengine.ru/)</generator><item><title>Клонирование объекта в Javascript (Clone object)</title><guid isPermaLink="true">http://deer.org.ua/2009/06/02/1/</guid><link>http://deer.org.ua/2009/06/02/1/</link><comments>http://deer.org.ua/2009/06/02/1/comments/</comments><description>Иногда нужно объект скопировать, и вставить в другое место.&lt;br /&gt;Для этого, можно использовать вот такую простую функцию, найденую на просторах интернетов ;)&lt;br /&gt;&lt;pre&gt;&lt;span class="hl-reserved"&gt;function &lt;/span&gt;&lt;span class="hl-identifier"&gt;clone&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-brackets"&gt;) {
	&lt;/span&gt;&lt;span class="hl-reserved"&gt;if&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-code"&gt;!&lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-code"&gt; || &lt;/span&gt;&lt;span class="hl-quotes"&gt;"&lt;/span&gt;&lt;span class="hl-string"&gt;object&lt;/span&gt;&lt;span class="hl-quotes"&gt;"&lt;/span&gt;&lt;span class="hl-code"&gt; !== &lt;/span&gt;&lt;span class="hl-reserved"&gt;typeof &lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-brackets"&gt;)  {
		&lt;/span&gt;&lt;span class="hl-reserved"&gt;return &lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-code"&gt;;
	&lt;/span&gt;&lt;span class="hl-brackets"&gt;}
	&lt;/span&gt;&lt;span class="hl-identifier"&gt;varc&lt;/span&gt;&lt;span class="hl-code"&gt; = &lt;/span&gt;&lt;span class="hl-quotes"&gt;"&lt;/span&gt;&lt;span class="hl-string"&gt;function&lt;/span&gt;&lt;span class="hl-quotes"&gt;"&lt;/span&gt;&lt;span class="hl-code"&gt; === &lt;/span&gt;&lt;span class="hl-reserved"&gt;typeof &lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-code"&gt;.&lt;/span&gt;&lt;span class="hl-identifier"&gt;pop&lt;/span&gt;&lt;span class="hl-code"&gt; ? &lt;/span&gt;&lt;span class="hl-brackets"&gt;[]&lt;/span&gt;&lt;span class="hl-code"&gt; : &lt;/span&gt;&lt;span class="hl-brackets"&gt;{}&lt;/span&gt;&lt;span class="hl-code"&gt;;
	&lt;/span&gt;&lt;span class="hl-reserved"&gt;var &lt;/span&gt;&lt;span class="hl-identifier"&gt;p&lt;/span&gt;&lt;span class="hl-code"&gt;, &lt;/span&gt;&lt;span class="hl-identifier"&gt;v&lt;/span&gt;&lt;span class="hl-code"&gt;;
	&lt;/span&gt;&lt;span class="hl-reserved"&gt;for&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-identifier"&gt;p &lt;/span&gt;&lt;span class="hl-reserved"&gt;in &lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-brackets"&gt;) {
		&lt;/span&gt;&lt;span class="hl-reserved"&gt;if&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-code"&gt;.&lt;/span&gt;&lt;span class="hl-identifier"&gt;hasOwnProperty&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-identifier"&gt;p&lt;/span&gt;&lt;span class="hl-brackets"&gt;)&lt;/span&gt;&lt;span class="hl-brackets"&gt;) {
			&lt;/span&gt;&lt;span class="hl-identifier"&gt;v&lt;/span&gt;&lt;span class="hl-code"&gt; = &lt;/span&gt;&lt;span class="hl-identifier"&gt;o&lt;/span&gt;&lt;span class="hl-brackets"&gt;[&lt;/span&gt;&lt;span class="hl-identifier"&gt;p&lt;/span&gt;&lt;span class="hl-brackets"&gt;]&lt;/span&gt;&lt;span class="hl-code"&gt;;
			&lt;/span&gt;&lt;span class="hl-reserved"&gt;if&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-identifier"&gt;v&lt;/span&gt;&lt;span class="hl-code"&gt; &amp;amp;&amp;amp; &lt;/span&gt;&lt;span class="hl-quotes"&gt;"&lt;/span&gt;&lt;span class="hl-string"&gt;object&lt;/span&gt;&lt;span class="hl-quotes"&gt;"&lt;/span&gt;&lt;span class="hl-code"&gt; === &lt;/span&gt;&lt;span class="hl-reserved"&gt;typeof &lt;/span&gt;&lt;span class="hl-identifier"&gt;v&lt;/span&gt;&lt;span class="hl-brackets"&gt;) {
				&lt;/span&gt;&lt;span class="hl-identifier"&gt;c&lt;/span&gt;&lt;span class="hl-brackets"&gt;[&lt;/span&gt;&lt;span class="hl-identifier"&gt;p&lt;/span&gt;&lt;span class="hl-brackets"&gt;]&lt;/span&gt;&lt;span class="hl-code"&gt; = &lt;/span&gt;&lt;span class="hl-identifier"&gt;clone&lt;/span&gt;&lt;span class="hl-brackets"&gt;(&lt;/span&gt;&lt;span class="hl-identifier"&gt;v&lt;/span&gt;&lt;span class="hl-brackets"&gt;)&lt;/span&gt;&lt;span class="hl-code"&gt;;
			&lt;/span&gt;&lt;span class="hl-brackets"&gt;}
		&lt;/span&gt;&lt;span class="hl-reserved"&gt;else &lt;/span&gt;&lt;span class="hl-identifier"&gt;c&lt;/span&gt;&lt;span class="hl-brackets"&gt;[&lt;/span&gt;&lt;span class="hl-identifier"&gt;p&lt;/span&gt;&lt;span class="hl-brackets"&gt;]&lt;/span&gt;&lt;span class="hl-code"&gt; = &lt;/span&gt;&lt;span class="hl-identifier"&gt;v&lt;/span&gt;&lt;span class="hl-code"&gt;;
		&lt;/span&gt;&lt;span class="hl-brackets"&gt;}
	}
	&lt;/span&gt;&lt;span class="hl-reserved"&gt;return &lt;/span&gt;&lt;span class="hl-identifier"&gt;c&lt;/span&gt;&lt;span class="hl-code"&gt;;
&lt;/span&gt;&lt;span class="hl-brackets"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;Если вы хотите перенести кусок HTML, то не забывайте о &lt;b&gt;innerHTML&lt;/b&gt;, будет гораздо быстрее :D. Если же работа на прямую с объектами, то ещё легко можно пользоваться функцией &lt;b&gt;eval()&lt;/b&gt;. &lt;hr /&gt;&lt;a href="http://deer.org.ua/2009/06/02/1/comments/"&gt;Комментарии&lt;/a&gt; к заметке&lt;br /&gt;&lt;br /&gt;Теги:&lt;br /&gt;&lt;a href="http://deer.org.ua/tags/javascript/"&gt;javascript&lt;/a&gt; &amp;gt; &lt;a href="http://deer.org.ua/tags/javascript/id/"&gt;id&lt;/a&gt; &amp;gt; &lt;a href="http://deer.org.ua/tags/javascript/id/clone/"&gt;clone&lt;/a&gt;</description><pubDate>Tue, 02 Jun 2009 16:44:55 +0200</pubDate></item></channel></rss>