<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3347696864826797497</id><updated>2012-02-17T10:03:26.293+08:00</updated><category term='script'/><category term='firefox'/><category term='thewordunevermeet'/><category term='cpp'/><category term='java'/><category term='js'/><category term='extension'/><category term='html'/><category term='note'/><category term='ie'/><title type='text'>WenDong-Zhang</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-4119197825126664473</id><published>2009-09-05T17:19:00.001+08:00</published><updated>2009-09-05T17:19:41.357+08:00</updated><title type='text'>Javascript prototype chain</title><content type='html'>&lt;div class="Section1"&gt;&lt;h1 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="6"&gt;JavaScript&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="6"&gt; prototype chain&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;ol type="1"&gt;&lt;li style=" text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;T&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;here is no strict class &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;definition&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; in &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, but we say a FUNCTION is a &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;CLASS&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; in common.&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=" text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; is based on prototype. When create &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;an&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; instance, it has a copy of the&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; properties of the&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; Object&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s prototype.&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;If you are a &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; newbie, maybe you need read some instructions of &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;and how to use OOP in JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;OK, now let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s go to see how &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; prototype works.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Note: in the follow pages, we use uppercase string as the class name and lowercase as the instance.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;"&gt;&lt;b&gt;&lt;font size="5"&gt;A glance at constructor and __proto__&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;The first Clazz.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:21pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:21pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Now, we defined a class whose name is &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;as we say, all the class has a prototype (used for initialize they instance)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, and there is a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; in the prototype which point to the class who own the property. Maybe you will say: &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Oh, why I&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; hav&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;e&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;n’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;t seen it&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;?”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; Yes, because you may trace &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;an&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; object by for &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; in, but the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; property has &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;an&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; attribute &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;DontEnum&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; (search it). There are some other property has &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;DontEnum&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; property, such as toString, toSource&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;L&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;et&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s dig Foo deeply:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_69g5dv7wfj_b" width="413" height="323" alt="" border="0"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:center"&gt;&lt;a name="_Ref236715619"&gt;&lt;/a&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;"&gt;&lt;font size="2"&gt;Figure &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;"&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Each object has with it an associated [[Prototype]] object, The prototype chain is a linkage of [[Prototype]] objects. The prototype chain is standard, but hidden in most implementations. __proto__ represents the internal [[Prototype]] object. __proto__ isn&amp;#39;t standard and isn&amp;#39;t supported in IE or Opera&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; [&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;http://dhtmlkitchen.com/learn/js/enumeration/prototype-chain.jsp&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;]&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;But most of the time in Function object we could use [obj].constructor.prototype as the __proto__ property. &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;For simplicity we will use __proto__ in the follow pages.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Look&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; at &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Figure &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, each &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; has a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;__proto__&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, which point to its prototype. And in Function object, we &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;have&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; which point to its Class&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;You can do some &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;tests;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; the follow figure shows how to use constructor and __proto__. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_70gvs5c8dh_b" width="237" height="193" alt="" border="0"&gt;&lt;/img&gt; &lt;/p&gt;&lt;h2 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;"&gt;&lt;b&gt;&lt;font size="5"&gt;The prototype chain&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;There &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;is no inheritance &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;notion in JavaScript, but because of the prototype chain, we can &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;simulate&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;the inheritance behavior.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; As shown in the previous section, each class instance has a property&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; __proto__.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; Now let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s see how to use it.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; Look at an example:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;run this code in JavaScript Shell&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Class Foo    &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Foo&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// Class Bar&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Bar&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// instance&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;bar&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; Foo&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; Bar&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;Fields of prototype:&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; name&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;Fields:&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; name&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;This shows two popular &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;ways&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; to define a Class, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;but you should know the difference between them. Both of them initialize they instance by they prototype. In Foo.prototype there is a field &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; whose value &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;is ‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, so the instance foo.__proto__ will hold the field too. But Class Bar use another way, first it create a object named &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, then in the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;initial code &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;add a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; to the object &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;When we call bar.name, the object has the property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, so return its value, and when call &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;foo.name, there is no &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; property in object foo, it will search the prototype chain and find the name property in foo.__proto__, return the value &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;JavaScript then looks in the&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;prototype object, the prototype of the prototype, and so on,&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;up the prototype chain until the property is found or the chain&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;is exhausted&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;[mastering dojo].&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;The follow figure shows the structure.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_71gvprtzfh_b" width="341" height="301" alt="" border="0"&gt;&lt;/img&gt; &lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;You see that, foo hold a pointer __proto__ which &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;point to Foo.prototype’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s space.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; So the name field does not belong to foo directly, when we modify Foo.prototype, the foo.__proto__ will change too. Have a test:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// Class Foo    &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Foo&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// instance&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; Foo&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// update Foo.prototype&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;My name changes&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; My name changes&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;foo&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; foo&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;__proto__&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; My name changes&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;After this code, the foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s structure is:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_72df76tvgs_b" width="377" height="72" alt="" border="0"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;When&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; we change foo.name, it &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;won’t &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;pollute the Foo.prototype, it only add a new property to object foo itself, so other instances&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; name still be Foo.prototype.name or has they own &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; property as foo does.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;The prototype chain is the most important notion to JavaScript &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;inheritance&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; Let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s go to see how to use it to implements inheritance in JS.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="3"&gt;BTW&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;: some time we use the follow code to declare a class:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(){}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Foo&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;method&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(){&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;/* ... */&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;This will cause a problem, Foo.prototype now point to a new object now, so the properties belong to its original prototype maybe&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;lost&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;(why maybe&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; lost&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;? Because the object &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;{}&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; also has most of the Function&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s properties, such as toString)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;especially&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; property.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; So we need to set the constructor explicitly. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;But by this way, the constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s DontEnum attribute is lost, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;so when you use for &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; in you can see the foo.constuctor.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; The follow figure show what&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s going on.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; The dot line means the connection not exists.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_73gk93264v_b" width="400" height="218" alt="" border="0"&gt;&lt;/img&gt;&lt;/p&gt;&lt;h2 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Arial&amp;#39;"&gt;&lt;b&gt;&lt;font size="5"&gt;Inheritance&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;The simple &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;comprehension&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; of inheritance to us is it can do the follow things:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol type="1"&gt;&lt;li style=" text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Subclass&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; has the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;super class’s&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;properties (&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;member&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; variable) and methods.&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=" text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;subclass could override them and has a way to call &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;super class’s&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; methods&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style=" text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;type &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;conversions, the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;super class&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; could hold a pointer (or reference) to its subclass&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; a inherit c&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;lass first and see step by step.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;The classical example is Shapes such as Circle, Rectangle&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, see the follow code:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// super class Shape&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(){}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;_name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Shape&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#004080; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;setColor&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// subclass Circle, derived from Shape&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(){};&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;_name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Circle&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#004080; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;setRadius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;area&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Math&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;PI&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;*&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;*&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// Circle instance&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;setColor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#004080; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;0xFF0000&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;setRadius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#004080; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;_name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; Circle&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;area&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;());&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&amp;gt; 314.1592653589793&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_74ddsncjpb_b" width="364" height="277" alt="" border="0"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;T&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;his figure shows circle&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s structure&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;after&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; call &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;but after setColor and setRadius, the circle will change to:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_75gdspq3dg_b" width="160" height="100" alt="" border="0"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Do you see that there is no &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; property in circle&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s __proto__, because we missed to set it after &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;you should add&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Circle.prototype.constructor = Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;to the code.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; Otherwise we you call circle.constructor it will return Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; to you&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;OK, from the Shape and Circle prototype chain, let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s see the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;inheritance&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; problems.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;The first one: subclass has &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;the super class&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s properties. It&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s clear that, if the subclass has no the properties, it will search the prototype chain, so it will get the super class (top prototype chain)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s properties sooner or later. But if the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;subclass already owns&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;properties&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; itself, it will stop search the prototype chain, which means it implements the override, problem 2&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; is&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;gone&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;. &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;For the problem 3, because JavaScript is weak typing, th&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;e &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;var o;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; could hold everything it &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;want&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; to&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;need not type &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;conver&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;ion&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;s.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="6"&gt;Declare Class in dojo&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;的重要性无需再重申，在&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo1.1&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;的时候就有将近&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;400&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;个类通过&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;来定义【&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;mastering dojo P225&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;】。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;在介绍&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;之前，首先看一下&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;中用到的几个函数：&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;、&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.clone&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;、&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;、&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.extend&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;J&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;ava&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;S&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;cript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;里的基本&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;数据类型（&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;bool, int, float, String&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;等）在赋值中是直接&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;copy&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;的，但对于其他的对象（&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Array&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;，&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;Object&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;等）则是指针&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;copy&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="5"&gt;dojo.mixin&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="5"&gt;, dojo.clone&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;有点类似于&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;浅&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;copy”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;，&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.clone&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;则类似于&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;深&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;copy”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;，例如：&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;loc&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;city&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Bei Jing&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;country&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;China&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;};&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;#39;Tian a&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;n men&amp;#39;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;location&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;loc&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;};&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;mixin_obj&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;({},&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;clone_obj&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;clone&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_76dspxnccz_b" width="316" height="224" alt="" border="0"&gt;&lt;/img&gt;&lt;/p&gt;&lt;h3 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="5"&gt;dojo.extend&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;extend&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;/*Object*/&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;/*Object...*/&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// summary:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;Adds all properties and methods of props to constructor&amp;#39;s&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype, making them available to all instances created with&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;constructor.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;for&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#004080; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;l&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;arguments&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;length&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;l&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;++){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;_mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;arguments&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;[&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;]);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// Object&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.extend&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;是将一组&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;hash property&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;直接&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;到一个类的&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;中。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;b&gt;&lt;font size="5"&gt;dojo.delegate&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;delegate&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;_delegate&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// boodman/crockford delegation w/ cornford optimization&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(){}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;f&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;_mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// Object&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;)();&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;可以简单的看作：&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;if&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;_mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;// Object&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;              &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;首先看一下&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;mastering do&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;jo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;上的例子：&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table cellspacing="0" cellpadding="0" style=" margin-left:0pt" class="zeroBorder"&gt;&lt;tr&gt;&lt;td width="568" style=" vertical-align:top"&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#008000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;//create an object with some properties&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;base&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;greet&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;        &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;quot;hello, my name is &amp;quot;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;+&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#0000c0; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;newObject&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;base&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;    &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#000000; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color:#ffffff; color:#005c00; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;&amp;quot;John&amp;quot;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt"&gt;&lt;span style="background-color:#ffffff; color:#5c5c5c; font-family:&amp;#39;Courier New&amp;#39;"&gt;&lt;font size="2"&gt;});&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_77gfbzpgcc_b" width="400" height="92" alt="" border="0"&gt;&lt;/img&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;在&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;中，首先定义了一个&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;空类&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;，并把第一个参数&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;base&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;作为该类的&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;proto&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;type&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;，对象&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;是该类（&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;）的一个实例，在创建完&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;后，在将&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;中的&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;property mix in&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;到&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;对象中。&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;mastering dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;中，作者称之为&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;不使用&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;方法来自定义对象&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;，&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;一般我们在定义一个实例的时候，首先要声明一个类，但使用&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;dojo.delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;可以直接定义一个函数对象的实例。&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;另外我们也可以理解为&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;newObject&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;只是一个对象，但这个对象的一些&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;property&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;会随着&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;base&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;的改变而改变&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;（因为&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt;prototype chain&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;的存在）&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:&amp;#39;宋体&amp;#39;"&gt;&lt;font size="3"&gt;。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=" margin-left:0pt; margin-right:0pt; text-align:justify"&gt;&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;"&gt;&lt;font size="3"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-4119197825126664473?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/4119197825126664473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/09/javascript-prototype-chain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/4119197825126664473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/4119197825126664473'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/09/javascript-prototype-chain.html' title='Javascript prototype chain'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-78331223610796788</id><published>2009-08-03T14:01:00.001+08:00</published><updated>2009-08-03T14:01:13.999+08:00</updated><title type='text'>Javascript prototype chain</title><content type='html'>&lt;div class="Section1"&gt;&lt;h1 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="6"&gt;JavaScript&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="6"&gt; prototype chain&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;ol type="1"&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;T&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;here is no strict class &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;definition&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; in &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, but we say a FUNCTION is a &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;CLASS&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; in common.&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; is based on prototype. When create &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;an&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; instance, it has a copy of the&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; properties of the&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; Object&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s prototype.&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;If you are a &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; newbie, maybe you need read some instructions of &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;and how to use OOP in JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;OK, now let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s go to see how &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;JavaScript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; prototype works.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Note: in the follow pages, we use uppercase string as the class name and lowercase as the instance.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Arial';"&gt;&lt;b&gt;&lt;font size="5"&gt;A glance at constructor and __proto__&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;The first Clazz.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 21pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 21pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Now, we defined a class whose name is &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;as we say, all the class has a prototype (used for initialize they instance)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, and there is a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; in the prototype which point to the class who own the property. Maybe you will say: &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Oh, why I&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; hav&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;e&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;n’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;t seen it&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;?”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; Yes, because you may trace &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;an&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; object by for &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; in, but the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; property has &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;an&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; attribute &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;DontEnum&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; (search it). There are some other property has &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;DontEnum&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; property, such as toString, toSource&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;L&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;et&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s dig Foo deeply:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_59ds8nh6fg_b" alt="" border="0" height="323" width="413"&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: center;"&gt;&lt;a name="_Ref236715619"&gt;&lt;/a&gt;&lt;span style="font-family: 'Arial';"&gt;&lt;font size="2"&gt;Figure &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Arial';"&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Each object has with it an associated [[Prototype]] object, The prototype chain is a linkage of [[Prototype]] objects. The prototype chain is standard, but hidden in most implementations. __proto__ represents the internal [[Prototype]] object. __proto__ isn't standard and isn't supported in IE or Opera&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; [&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;http://dhtmlkitchen.com/learn/js/enumeration/prototype-chain.jsp&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;]&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;But most of the time in Function object we could use [obj].constructor.prototype as the __proto__ property. &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;For simplicity we will use __proto__ in the follow pages.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Look&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; at &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Figure &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, each &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;object&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; has a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;__proto__&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, which point to its prototype. And in Function object, we &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;have&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; which point to its Class&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;You can do some &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;tests;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; the follow figure shows how to use constructor and __proto__. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_60hts3qkhh_b" alt="" border="0" height="189" width="238"&gt; &lt;/p&gt;&lt;h2 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Arial';"&gt;&lt;b&gt;&lt;font size="5"&gt;The prototype chain&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;There &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;is no inheritance &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;notion in JavaScript, but because of the prototype chain, we can &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;simulate&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;the inheritance behavior.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; As shown in the previous section, each class instance has a property&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; __proto__.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; Now let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s see how to use it.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; Look at an example:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;run this code in JavaScript Shell&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Class Foo&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Foo'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// Class Bar&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Bar'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// instance&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;bar&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; Foo&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; Bar&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;Fields of prototype:&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt; name&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;Fields:&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt; name&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;This shows two popular &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;ways&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; to define a Class, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;but you should know the difference between them. Both of them initialize they instance by they prototype. In Foo.prototype there is a field &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; whose value &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;is ‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, so the instance foo.__proto__ will hold the field too. But Class Bar use another way, first it create a object named &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, then in the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;initial code &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;add a property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; to the object &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;bar&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;When we call bar.name, the object has the property &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, so return its value, and when call &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;foo.name, there is no &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; property in object foo, it will search the prototype chain and find the name property in foo.__proto__, return the value &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;JavaScript then looks in the&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;prototype object, the prototype of the prototype, and so on,&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;up the prototype chain until the property is found or the chain&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;is exhausted&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;[mastering dojo].&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;The follow figure shows the structure.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_61hhpq64vp_b" alt="" border="0" height="301" width="341"&gt; &lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;You see that, foo hold a pointer __proto__ which &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;point to Foo.prototype’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s space.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; So the name field does not belong to foo directly, when we modify Foo.prototype, the foo.__proto__ will change too. Have a test:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// Class Foo&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Foo'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// instance&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; Foo&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// update Foo.prototype&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'My name changes'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; My name changes&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'foo'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; foo&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;__proto__&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; My name changes&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;After this code, the foo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s structure is:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_62gwnfqdhq_b" alt="" border="0" height="72" width="377"&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;When&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; we change foo.name, it &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;won’t &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;pollute the Foo.prototype, it only add a new property to object foo itself, so other instances&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; name still be Foo.prototype.name or has they own &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; property as foo does.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;The prototype chain is the most important notion to JavaScript &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;‘&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;inheritance&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; Let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s go to see how to use it to implements inheritance in JS.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="3"&gt;BTW&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;: some time we use the follow code to declare a class:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(){}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Foo'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;method&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(){&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;/* ... */&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;foo&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;This will cause a problem, Foo.prototype now point to a new object now, so the properties belong to its original prototype maybe&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;lost&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;(why maybe&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; lost&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;? Because the object &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;{}&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; also has most of the Function&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s properties, such as toString)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;especially&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; property.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; So we need to set the constructor explicitly. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Foo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;But by this way, the constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s DontEnum attribute is lost, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;so when you use for &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; in you can see the foo.constuctor.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; The follow figure show what&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s going on.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; The dot line means the connection not exists.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_63hsdvbmdx_b" alt="" border="0" height="218" width="400"&gt;&lt;/p&gt;&lt;h2 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Arial';"&gt;&lt;b&gt;&lt;font size="5"&gt;Inheritance&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;The simple &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;comprehension&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; of inheritance to us is it can do the follow things:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol type="1"&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Subclass&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; has the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;super class’s&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;properties (&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;member&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; variable) and methods.&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;subclass could override them and has a way to call &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;super class’s&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; methods&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;type &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;conversions, the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;super class&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; could hold a pointer (or reference) to its subclass&lt;/font&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; a inherit c&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;lass first and see step by step.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;The classical example is Shapes such as Circle, Rectangle&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;…&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, see the follow code:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// super class Shape&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(){}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;_name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Shape'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 64, 128); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;setColor&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;color&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// subclass Circle, derived from Shape&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(){};&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;_name&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Circle'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 64, 128); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;0&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;setRadius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;)&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;area&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;()&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Math&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;PI&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;*&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;*&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;radius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// Circle instance&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;setColor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 64, 128); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;0xFF0000&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;setRadius&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 64, 128); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;10&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;_name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; Circle&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;print&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;area&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;());&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&amp;gt; 314.1592653589793&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_64ch4dc4hj_b" alt="" border="0" height="277" width="364"&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;T&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;his figure shows circle&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s structure&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;after&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; call &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;circle&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;but after setColor and setRadius, the circle will change to:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_65g4pgjccp_b" alt="" border="0" height="100" width="160"&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Do you see that there is no &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; property in circle&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s __proto__, because we missed to set it after &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;you should add&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Circle.prototype.constructor = Circle&lt;/font&gt;&lt;/span&gt;&lt;span style="color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;to the code.&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; Otherwise we you call circle.constructor it will return Shape&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; to you&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;OK, from the Shape and Circle prototype chain, let&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s see the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;inheritance&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; problems.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;The first one: subclass has &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;the super class&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s properties. It&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s clear that, if the subclass has no the properties, it will search the prototype chain, so it will get the super class (top prototype chain)&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;’&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s properties sooner or later. But if the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;subclass already owns&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; the &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;properties&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; itself, it will stop search the prototype chain, which means it implements the override, problem 2&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; is&lt;/font&gt;&lt;/span&gt; &lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;gone&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;. &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;For the problem 3, because JavaScript is weak typing, th&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;e &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;var o;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; could hold everything it &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;want&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt; to&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;, &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;need not type &lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;conver&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;ion&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;s.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="6"&gt;Declare Class in dojo&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h1&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;的重要性无需再重申，在&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo1.1&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;的时候就有将近&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;400&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;个类通过&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;来定义【&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;mastering dojo P225&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;】。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;在介绍&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;之前，首先看一下&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.declare&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;中用到的几个函数：&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;、&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.clone&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;、&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;、&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.extend&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;J&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;ava&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;S&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;cript&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;里的基本&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;数据类型（&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;bool, int, float, String&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;等）在赋值中是直接&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;copy&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;的，但对于其他的对象（&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Array&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;，&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;Object&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;等）则是指针&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;copy&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="5"&gt;dojo.mixin&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="5"&gt;, dojo.clone&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;有点类似于&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;浅&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;copy”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;，&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.clone&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;则类似于&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;“&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;深&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;copy”&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;，例如：&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;loc&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;city&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Bei Jing'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;country&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;China&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;};&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;'Tian a&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;n men'&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;location&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;loc&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;};&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;mixin_obj&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;({},&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;clone_obj&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;clone&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_66hz5sstf9_b" alt="" border="0" height="224" width="316"&gt;&lt;/p&gt;&lt;h3 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="5"&gt;dojo.extend&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;extend&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;/*Object*/&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;/*Object...*/&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// summary:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;Adds all properties and methods of props to constructor's&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype, making them available to all instances created with&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;constructor.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;for&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 64, 128); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;1&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;l&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;arguments&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;length&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;lt;&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;l&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;++){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;_mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;arguments&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;[&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;]);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;constructor&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// Object&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.extend&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;是将一组&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;hash property&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;直接&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;到一个类的&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;prototype&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;中。&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3 style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;font size="5"&gt;dojo.delegate&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;delegate&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;_delegate&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// boodman/crockford delegation w/ cornford optimization&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(){}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;i&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;f&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;_mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// Object&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;span style="color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;)();&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;dojo.delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;可以简单的看作：&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;prototype&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;obj&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;new&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;TMP&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;();&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;if&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;_mixin&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;props&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;);&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;tmp&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;// Object&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;首先看一下&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;mastering do&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;jo&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family: '宋体';"&gt;&lt;font size="3"&gt;上的例子：&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;table style="margin-left: 0pt;" class="zeroBorder" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="vertical-align: top;" width="568"&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 128, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;//create an object with some properties&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;base&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;greet&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;function&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(){&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;return&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;"hello, my name is "&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;+&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;this&lt;/font&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;}&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 192); font-family: 'Courier New';"&gt;&lt;b&gt;&lt;font size="2"&gt;var&lt;/font&gt;&lt;/b&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;newObject&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;=&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;dojo&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;.&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;delegate&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;(&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;base&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;,&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;{&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 0, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;name&lt;/font&gt;&lt;/span&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;:&lt;/font&gt;&lt;/span&gt; &lt;span style="background-color: rgb(255, 255, 255); color: rgb(0, 92, 0); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;"John"&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt;"&gt;&lt;span style="background-color: rgb(255, 255, 255); color: rgb(92, 92, 92); font-family: 'Courier New';"&gt;&lt;font size="2"&gt;});&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;img src="http://docs.google.com/File?id=ddhrj736_67gs8chmfk_b" alt="" border="0" height="92" width="400"&gt;&lt;/p&gt;&lt;p style="margin-left: 0pt; margin-right: 0pt; text-align: justify;"&gt;&lt;span style="font-family: 'Times New Roman';"&gt;&lt;font size="3"&gt;&amp;nbsp;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;br&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-78331223610796788?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/78331223610796788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/08/javascript-prototype-chain.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/78331223610796788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/78331223610796788'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/08/javascript-prototype-chain.html' title='Javascript prototype chain'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-6508361043915576211</id><published>2009-06-01T14:53:00.002+08:00</published><updated>2009-06-01T14:54:31.685+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='note'/><title type='text'>[note] java object initialize sequence</title><content type='html'>&lt;code class="prettyprint lang-java"&gt;&lt;br /&gt;package wd;&lt;br /&gt;&lt;br /&gt;class Foo {&lt;br /&gt;    String str;&lt;br /&gt;    Foo() {&lt;br /&gt;        System.out.println("foo");&lt;br /&gt;    }&lt;br /&gt;    Foo(String str) {&lt;br /&gt;        System.out.println("Foo." + str);&lt;br /&gt;        this.str = str;&lt;br /&gt;    }&lt;br /&gt;    public String toString() {&lt;br /&gt;        return str;&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Base {&lt;br /&gt;    Foo f1 = new Foo("1st");&lt;br /&gt;    &lt;br /&gt;    static Foo sf1 = new Foo("sf 1st");&lt;br /&gt;    &lt;br /&gt;    static{&lt;br /&gt;        System.out.println("Base.static");&lt;br /&gt;        sf1 = new Foo("static foo 1st changed");&lt;br /&gt;        sf2 = new Foo("static foo 2nd changed");&lt;br /&gt;    }&lt;br /&gt;    Foo f2 = new Foo("2nd");&lt;br /&gt;    Base() {&lt;br /&gt;        System.out.println("Base()");&lt;br /&gt;    }&lt;br /&gt;    Foo f3 = new Foo("3rd");&lt;br /&gt;    &lt;br /&gt;    static Foo sf2 = new Foo("sf 2nd");&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;class Derived extends Base {&lt;br /&gt;    static {&lt;br /&gt;        System.out.println("Derived.static");&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    Derived() {&lt;br /&gt;        System.out.println("Derived()");&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public class InitSequence {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        new Derived();&lt;br /&gt;        System.out.println("d.sf1: " + Derived.sf1);&lt;br /&gt;        System.out.println("d.sf2: " + Derived.sf2);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-6508361043915576211?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/6508361043915576211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/06/java-object-initialize-sequence.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/6508361043915576211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/6508361043915576211'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/06/java-object-initialize-sequence.html' title='[note] java object initialize sequence'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-510036061407103028</id><published>2009-06-01T14:15:00.002+08:00</published><updated>2009-06-01T14:20:17.391+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='note'/><title type='text'>[note] date, timestamp &amp; time string converter</title><content type='html'>&lt;code class="prettyprint lang-java"&gt;&lt;br /&gt;package sys.function;&lt;br /&gt;&lt;br /&gt;import java.text.ParseException;&lt;br /&gt;import java.text.SimpleDateFormat;&lt;br /&gt;import java.util.Calendar;&lt;br /&gt;import java.util.Date;&lt;br /&gt;&lt;br /&gt;public class Format {&lt;br /&gt;    &lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        Date d = new Date();&lt;br /&gt;        System.out.println(date2string(d, "yyyy/MM/dd, HH:mm:ss"));&lt;br /&gt;        &lt;br /&gt;        String str = "2009-01-01";&lt;br /&gt;        System.out.println(string2time(str, "yyyy-MM-dd"));&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public static String null2string(String str) {&lt;br /&gt;        if (str != null)&lt;br /&gt;            return str;&lt;br /&gt;        return "";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static String null2zero(String str) {&lt;br /&gt;        if (str != null)&lt;br /&gt;            return str;&lt;br /&gt;        return "0";&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static int string2int(String str) {&lt;br /&gt;        try {&lt;br /&gt;            return Integer.valueOf(str);&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            return 0;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static long string2time(String date, String format) {&lt;br /&gt;        if (date == null) {&lt;br /&gt;            return 0;&lt;br /&gt;        }&lt;br /&gt;        SimpleDateFormat dateFormat = new SimpleDateFormat(format);&lt;br /&gt;        Date dt = null;&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            dt = dateFormat.parse(date);&lt;br /&gt;        } catch (ParseException excpt) {&lt;br /&gt;            return 0;&lt;br /&gt;        }&lt;br /&gt;        return date2time(dt);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static String time2string(long time, String format) {&lt;br /&gt;        if (time == 0)&lt;br /&gt;            return "";&lt;br /&gt;        Date date = new Date(time);&lt;br /&gt;        SimpleDateFormat dateFormat = new SimpleDateFormat(format);&lt;br /&gt;        return dateFormat.format(date);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static Date string2date(String date, String format) {&lt;br /&gt;        if (date == null) {&lt;br /&gt;            return null;&lt;br /&gt;        }&lt;br /&gt;        SimpleDateFormat dateFormat = new SimpleDateFormat(format);&lt;br /&gt;        Date dt = null;&lt;br /&gt;&lt;br /&gt;        try {&lt;br /&gt;            dt = dateFormat.parse(date);&lt;br /&gt;        } catch (ParseException excpt) {&lt;br /&gt;            return null;&lt;br /&gt;        }&lt;br /&gt;        return dt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static String date2string(Date date, String format) {&lt;br /&gt;        SimpleDateFormat dateFormat = new SimpleDateFormat(format);&lt;br /&gt;        return dateFormat.format(date);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static long date2time(Date date) {&lt;br /&gt;        Calendar cld = Calendar.getInstance();&lt;br /&gt;        cld.setTime(date);&lt;br /&gt;        return cld.getTimeInMillis();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static String toHTMLString(String in) {&lt;br /&gt;        StringBuffer out = new StringBuffer();&lt;br /&gt;        for (int i = 0; in != null &amp;amp;&amp;amp; i &amp;lt; in.length(); i++) {&lt;br /&gt;            char c = in.charAt(i);&lt;br /&gt;            if (c == '\'')&lt;br /&gt;                out.append("'");&lt;br /&gt;            else if (c == '\"')&lt;br /&gt;                out.append("&amp;amp;quot;");&lt;br /&gt;            else if (c == '&amp;lt;')&lt;br /&gt;                out.append("&amp;amp;lt;");&lt;br /&gt;            else if (c == '&amp;gt;')&lt;br /&gt;                out.append("&amp;amp;qt;");&lt;br /&gt;            else if (c == '&amp;amp;')&lt;br /&gt;                out.append("&amp;amp;amp;");&lt;br /&gt;            else if (c == ' ')&lt;br /&gt;                out.append("&amp;amp;nbsp;");&lt;br /&gt;            else if (c == '\n')&lt;br /&gt;                out.append("&amp;lt;br /&amp;gt;");&lt;br /&gt;            else&lt;br /&gt;                out.append(c);&lt;br /&gt;        }&lt;br /&gt;        return out.toString();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static String html2text(String html) {&lt;br /&gt;        String out = html;&lt;br /&gt;        out.replaceAll("&amp;amp;quot;", "\"");&lt;br /&gt;        out.replaceAll("&amp;amp;lt;", "&amp;lt;");&lt;br /&gt;        out.replaceAll("&amp;amp;gt;", "&amp;gt;");&lt;br /&gt;        out.replaceAll("&amp;amp;nbsp;", " ");&lt;br /&gt;        out.replaceAll("&amp;amp;amp;", "&amp;amp;");&lt;br /&gt;        out.replaceAll("&amp;lt;br /&amp;gt;", "\n");&lt;br /&gt;        return out;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public static String getUrlString(String str) {&lt;br /&gt;        if (str == null)&lt;br /&gt;            return "";&lt;br /&gt;        try {&lt;br /&gt;            return new String(str.getBytes("ISO8859_1"), "utf-8");&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;            return "";&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-510036061407103028?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/510036061407103028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/06/note-date-timestamp-time-string.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/510036061407103028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/510036061407103028'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/06/note-date-timestamp-time-string.html' title='[note] date, timestamp &amp; time string converter'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-7397677697223945026</id><published>2009-06-01T13:26:00.001+08:00</published><updated>2009-06-01T13:29:25.372+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>remove cvs folders. [java]</title><content type='html'>just as a reminder~&lt;br /&gt;&lt;code class="prettyprint lang-java"&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;&lt;br /&gt;public class DeleteCvsFile {&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        String filepath = "D:/workspace_java/yp";&lt;br /&gt;        if(args.length &amp;gt; 0) filepath = args[0];&lt;br /&gt;        File file = new File(filepath);&lt;br /&gt;        delCvs(file);&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    static void delCvs(File file) {&lt;br /&gt;        if(file.getName().equals("CVS")) {&lt;br /&gt;            System.out.println("delete: " + file.getAbsolutePath());&lt;br /&gt;            delDir(file);&lt;br /&gt;            return ;&lt;br /&gt;        } &lt;br /&gt;        if(file.isDirectory()) {&lt;br /&gt;            File[] files = file.listFiles();&lt;br /&gt;            for(int i=0; i != files.length; ++i) {&lt;br /&gt;                delCvs(files[i]);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    static void delDir(File file) {&lt;br /&gt;        if(file.isDirectory()) {&lt;br /&gt;            File[] files = file.listFiles();&lt;br /&gt;            for(int i=0; i != files.length; ++i) {&lt;br /&gt;                delDir(files[i]);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        file.delete();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-7397677697223945026?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/7397677697223945026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/06/remove-cvs-folders-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/7397677697223945026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/7397677697223945026'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/06/remove-cvs-folders-java.html' title='remove cvs folders. [java]'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-1841699973413573715</id><published>2009-05-25T11:09:00.000+08:00</published><updated>2009-05-25T11:11:27.865+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><title type='text'>use (function(){})() to do the scope thing.</title><content type='html'>&lt;code class="prettyprint lang-html"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;Untitled Document&amp;lt;/title&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;input type="button" id="b" value="click me" /&amp;gt;&lt;br /&gt;        &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;            function g(){&lt;br /&gt;                console.log('g0');&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            (function(){&lt;br /&gt;                function g(){&lt;br /&gt;                    console.log('g1');&lt;br /&gt;                }&lt;br /&gt;                document.getElementById('b').onclick = g;&lt;br /&gt;            })();&lt;br /&gt;            &lt;br /&gt;            (function(){&lt;br /&gt;                function g(){&lt;br /&gt;                    console.log('g2');&lt;br /&gt;                }&lt;br /&gt;                g();&lt;br /&gt;            })();&lt;br /&gt;        &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-1841699973413573715?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/1841699973413573715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/use-function-to-do-scope-thing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1841699973413573715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1841699973413573715'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/use-function-to-do-scope-thing.html' title='use (function(){})() to do the scope thing.'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-4341369911473915348</id><published>2009-05-13T16:57:00.002+08:00</published><updated>2009-05-25T11:12:00.145+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><title type='text'>ie7 zoom caused some js behavior weird</title><content type='html'>we always use js to calculate and set the DOM node's position. but under ie7, you should consider the zoom factor of the broswer, because its behavior is a little weird.&lt;br /&gt;here is a test:&lt;br /&gt;ps: I found the way to get zoomlevel &lt;a href="http://blog.hedgerwow.com/2007/12/05/detect-page-zoom-for-ie7/" target="_blank"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;code class="prettyprint lang-html"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;   &amp;lt;head&amp;gt;&lt;br /&gt;       &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&amp;gt;&lt;br /&gt;       &amp;lt;title&amp;gt;Untitled Document&amp;lt;/title&amp;gt;&lt;br /&gt;   &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;       var dojo = {&lt;br /&gt;           byId: function(id) {&lt;br /&gt;               return document.getElementById(id) || id;&lt;br /&gt;           },&lt;br /&gt;           coords: function(node) {&lt;br /&gt;               var x, y;&lt;br /&gt;               x = y = 0;&lt;br /&gt;               while(node) {&lt;br /&gt;                   x += node.offsetLeft;&lt;br /&gt;                   y += node.offsetTop;&lt;br /&gt;                   node = node.offsetParent;&lt;br /&gt;               }&lt;br /&gt;               return {'x': x, 'y': y};&lt;br /&gt;           }&lt;br /&gt;       };&lt;br /&gt;&lt;br /&gt;       function z() {&lt;br /&gt;           document.body.style.zoom = 2;&lt;br /&gt;       }&lt;br /&gt;       function s() {&lt;br /&gt;           var rect = document.body.getBoundingClientRect();&lt;br /&gt;           var zoomLevel = Math.round( (rect.right-rect.left)/document.body.clientWidth * 100);&lt;br /&gt;           dojo.byId('zoom-info').innerHTML =&lt;br /&gt;               'zoomLevel:' + zoomLevel + ','&lt;br /&gt;               + 'd.offsetWidth:' + dojo.byId('d').offsetWidth + ','//dojo.style(document.body, 'zoom');&lt;br /&gt;               + 'd.offsetTop:' + dojo.byId('d').offsetTop + ','&lt;br /&gt;               + 'd.style.top:' + dojo.byId('d').style.top + ',';&lt;br /&gt;       }&lt;br /&gt;       window.onload = function() {&lt;br /&gt;           document.attachEvent('onmousemove', function(e) {&lt;br /&gt;               e = e || window.event;&lt;br /&gt;               var pos = dojo.coords(dojo.byId(d));&lt;br /&gt;               dojo.byId('debug').innerHTML = e.clientX + ', ' + e.clientY + ' d.pos:' + pos.x + ',' + pos.y;&lt;br /&gt;               s();&lt;br /&gt;           }, false);&lt;br /&gt;       }&lt;br /&gt;   &amp;lt;/script&amp;gt;&lt;br /&gt;   &amp;lt;/head&amp;gt;&lt;br /&gt;   &amp;lt;body&amp;gt;&lt;br /&gt;       &amp;lt;h1&amp;gt;Test ie zoom&amp;lt;/h1&amp;gt;&lt;br /&gt;       &amp;lt;span &amp;gt;Hello world!&amp;lt;/span&amp;gt;&lt;br /&gt;       &amp;lt;div id="debug"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;       &amp;lt;div id="zoom-info"&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;       &amp;lt;input type="button" value="+" onclick="z()"/&amp;gt;&lt;br /&gt;       &amp;lt;input type="button" value="s" onclick="s()"/&amp;gt;&lt;br /&gt;       &amp;lt;div id="d" style="position: absolute; top: 200px; left: 500px; background: red; width: 200px; height: 100px;"&amp;gt;&lt;br /&gt;           position: absolute; top: 200px; left: 50px; background: red; width: 200px; height: 100px;&lt;br /&gt;       &amp;lt;/div&amp;gt;&lt;br /&gt;   &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-4341369911473915348?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/4341369911473915348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/ie7-zoom-caused-some-js-behavior-weird.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/4341369911473915348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/4341369911473915348'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/ie7-zoom-caused-some-js-behavior-weird.html' title='ie7 zoom caused some js behavior weird'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-1888558643164241085</id><published>2009-05-12T17:56:00.001+08:00</published><updated>2009-05-16T20:02:06.265+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><title type='text'>finished the extension</title><content type='html'>Here is the extension:&lt;a href="https://addons.mozilla.org/zh-CN/firefox/addon/11911"&gt;https://addons.mozilla.org/zh-CN/firefox/addon/11911&lt;/a&gt;&lt;br /&gt;&lt;code class="prettyprint lang-js"&gt;&lt;br /&gt;var highlightbloggercode = {&lt;br /&gt;  onLoad: function(event){&lt;br /&gt;      this.initialized = true;&lt;br /&gt;      this.codeTypes = 'bsh,c,cc,cpp,cs,csh,cyc,cv,htm,html,java,js,m,mxml,perl,pl,pm,py,rb,sh,xhtml,xml,xsl';&lt;br /&gt;      this.oPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("");&lt;br /&gt;    &lt;br /&gt;      var doc = event.originalTarget;&lt;br /&gt;      if (!doc || doc == null || doc.location == null)&lt;br /&gt;          return;&lt;br /&gt;      var href = doc.location.href;&lt;br /&gt;      var reg = /^http:\/\/www\.blogger\.com\/post-(create|edit)\.g\?blogID=/i;&lt;br /&gt;      if (href &amp;amp;&amp;amp; href.match(reg)) {&lt;br /&gt;          var _this = this;&lt;br /&gt;          // wait for the richedit load completed.&lt;br /&gt;          setTimeout(function(){&lt;br /&gt;              new _this.AddCode(window.content, window.content.document);&lt;br /&gt;          }, 1000);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  AddCode: function(win, doc){&lt;br /&gt;      this.win = win;&lt;br /&gt;      this.doc = doc;&lt;br /&gt;      this.btn = null;&lt;br /&gt;      this.btnId = '_height_code_btn';&lt;br /&gt;      this._codeDiv = null;&lt;br /&gt;      this.langs = [];&lt;br /&gt;    &lt;br /&gt;      this.addBtn();&lt;br /&gt;  },&lt;br /&gt;  initOptions: function(){&lt;br /&gt;      try {&lt;br /&gt;          var types = this.oPrefs.getCharPref('highlightbloggercode.code.type');&lt;br /&gt;          document.getElementById('code-type').value = types;&lt;br /&gt;      }&lt;br /&gt;      catch (e) {&lt;br /&gt;          document.getElementById('code-type').value = this.codeTypes;&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  saveOptions: function(){&lt;br /&gt;      var types = document.getElementById('code-type').value;&lt;br /&gt;      this.oPrefs.setCharPref('highlightbloggercode.code.type', types);&lt;br /&gt;  }&lt;br /&gt;};&lt;br /&gt;highlightbloggercode.AddCode.prototype = {&lt;br /&gt;  addBtn: function(){&lt;br /&gt;      try {&lt;br /&gt;          this.btn = this.doc.getElementById(this.btnId);&lt;br /&gt;          if (!this.btn) {&lt;br /&gt;              var input = this._create('input');&lt;br /&gt;              input.type = 'button';&lt;br /&gt;              input.id = this.btnId;&lt;br /&gt;              input.value = "Code";&lt;br /&gt;              this.doc.getElementById('htmlbar_Buttons').appendChild(input);&lt;br /&gt;              this.btn = input;&lt;br /&gt;              var _this = this;&lt;br /&gt;              var handler = function(){&lt;br /&gt;                  _this._doAddCode();&lt;br /&gt;              }&lt;br /&gt;              this.btn.addEventListener('click', handler, false);&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;      catch (e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _doAddCode: function(){&lt;br /&gt;      try {&lt;br /&gt;          var div = this._create('div');&lt;br /&gt;          this._setStyle(div, 'font-size: 12px;border: 2px solid green;-moz-border-radius: 10px;padding: 5px;position: fixed;background: #f0f0f0;z-index:999;top:-5000px;');&lt;br /&gt;        &lt;br /&gt;          div.appendChild(document.createTextNode('Paste your code here'));&lt;br /&gt;          div.appendChild(this._create('br'));&lt;br /&gt;&lt;br /&gt;          // textarea      &lt;br /&gt;          var textarea = this._create('textarea');&lt;br /&gt;          this._setStyle(textarea, "font-size: 12px;font-family: 'Courier New', Courier, monospace;");&lt;br /&gt;          div.appendChild(textarea);&lt;br /&gt;        &lt;br /&gt;          // paste code button&lt;br /&gt;          var input = this._create('input');&lt;br /&gt;          input.type = 'button';&lt;br /&gt;          input.value = 'OK';&lt;br /&gt;          div.appendChild(input);&lt;br /&gt;          var _this = this;&lt;br /&gt;          var handler = function(){&lt;br /&gt;              _this._doPasteCode();&lt;br /&gt;          }&lt;br /&gt;          input.addEventListener('click', handler, false);&lt;br /&gt;        &lt;br /&gt;          // options for code type&lt;br /&gt;          var types = highlightbloggercode.codeTypes;&lt;br /&gt;          try {&lt;br /&gt;              var types = highlightbloggercode.oPrefs.getCharPref('highlightbloggercode.code.type');&lt;br /&gt;          }&lt;br /&gt;          catch (e) {&lt;br /&gt;          }&lt;br /&gt;        &lt;br /&gt;          this.langs = types.replace(/[,\s]+/g, ',').split(',');&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;          var select = this._create('select');&lt;br /&gt;          for (var i = 0; i != this.langs.length; ++i) {&lt;br /&gt;              var opt = this._create('option');&lt;br /&gt;              opt.value = opt.text = this.langs[i];&lt;br /&gt;              select.appendChild(opt);&lt;br /&gt;          }&lt;br /&gt;          div.appendChild(select);&lt;br /&gt;        &lt;br /&gt;          // close button&lt;br /&gt;          input = this._create('input');&lt;br /&gt;          input.type = 'button';&lt;br /&gt;          input.value = 'close';&lt;br /&gt;          div.appendChild(input);&lt;br /&gt;          handler = function(){&lt;br /&gt;              _this._marker.parentNode.removeChild(_this._marker);&lt;br /&gt;              _this._codeDiv.parentNode.removeChild(_this._codeDiv);&lt;br /&gt;          }&lt;br /&gt;          input.addEventListener('click', handler, false);&lt;br /&gt;        &lt;br /&gt;        &lt;br /&gt;          // create a marker&lt;br /&gt;          var marker = this._create('div');&lt;br /&gt;          this._setStyle(marker, 'position: fixed;top:0;left:0;background: black; opacity: .4;z-index:998;');&lt;br /&gt;        &lt;br /&gt;          this.doc.getElementsByTagName('body')[0].appendChild(marker);&lt;br /&gt;          this.doc.getElementsByTagName('body')[0].appendChild(div);&lt;br /&gt;        &lt;br /&gt;          // update the div position&lt;br /&gt;          var w = 600;&lt;br /&gt;          var h = 340;&lt;br /&gt;          var maxW = window.content.window.innerWidth;  &lt;br /&gt;          var maxH = window.content.window.innerHeight;&lt;br /&gt;          if(w &amp;gt; maxW) w = maxW - 40;    // div padding&lt;br /&gt;          if(h &amp;gt; maxH) h = maxH - 80;&lt;br /&gt;          textarea.style.width = w + 'px';&lt;br /&gt;          textarea.style.height = h + 'px';&lt;br /&gt;          div.style.top = parseInt((maxH - h)/3) + 'px';&lt;br /&gt;          div.style.left = parseInt((maxW - w)/2) + 'px';&lt;br /&gt;        &lt;br /&gt;          marker.style.width = maxW + 'px';&lt;br /&gt;          marker.style.height = maxH + 'px';&lt;br /&gt;        &lt;br /&gt;          this._marker = marker;&lt;br /&gt;          this._codeDiv = div;&lt;br /&gt;      }&lt;br /&gt;      catch (e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _doPasteCode: function(){&lt;br /&gt;      try {&lt;br /&gt;          var code = this._codeDiv.getElementsByTagName('textarea')[0].value;&lt;br /&gt;          var type = this._codeDiv.getElementsByTagName('select')[0].value;&lt;br /&gt;          this._codeDiv.parentNode.removeChild(this._codeDiv);&lt;br /&gt;          this._marker.parentNode.removeChild(this._marker);&lt;br /&gt;          this._pasteCode(code, type);&lt;br /&gt;      }&lt;br /&gt;      catch (e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _pasteCode: function(code, type){&lt;br /&gt;      try {&lt;br /&gt;          var src = ['&amp;lt;code class="prettyprint lang-' + type + '"&amp;gt;', this._encode(code), '&amp;lt;/code&amp;gt;'];&lt;br /&gt;          var str = 'javascript:Textbar.wrapSelection(\'\', \'' + this._convert(src.join("\n")) + '\')';&lt;br /&gt;          this.win.location.href = str;&lt;br /&gt;      }&lt;br /&gt;      catch (e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _encode: function(str){&lt;br /&gt;      str = str.replace(/&amp;amp;/g, '&amp;amp;amp;');&lt;br /&gt;      str = str.replace(/&amp;lt;/g, '&amp;amp;lt;');&lt;br /&gt;      str = str.replace(/&amp;gt;/g, '&amp;amp;gt;');&lt;br /&gt;      str = str.replace(/&amp;lt;/g, '&amp;amp;lt;');&lt;br /&gt;      str = str.replace(/\t/g, '    ');&lt;br /&gt;      str = str.replace(/(\r\n|\n)/g, '\n');&lt;br /&gt;      return str;&lt;br /&gt;  },&lt;br /&gt;  _convert: function(str){&lt;br /&gt;      str = str.replace(/(['\\])/g, '\\$1');&lt;br /&gt;      str = str.replace(/\n/g, '\\n');&lt;br /&gt;      return str;&lt;br /&gt;  },&lt;br /&gt;  _create: function(tag){&lt;br /&gt;      return this.doc.createElement(tag);&lt;br /&gt;  },&lt;br /&gt;  _setStyle: function(ele, style){&lt;br /&gt;      var ss = style.split(';');&lt;br /&gt;      for(var i=0; i != ss.length; ++i) {&lt;br /&gt;          var maps = ss[i].split(':');&lt;br /&gt;          if(maps.length &amp;lt; 2) continue;&lt;br /&gt;          var key = maps[0];&lt;br /&gt;          var val = maps[1];&lt;br /&gt;          var _key = '';&lt;br /&gt;          for(var k=0; k != key.length; ++k) {&lt;br /&gt;              if (key.charAt(k) == '-') {&lt;br /&gt;                  ++k;&lt;br /&gt;                  _key += key.charAt(k).toUpperCase();&lt;br /&gt;              } else {&lt;br /&gt;                  _key += key.charAt(k);&lt;br /&gt;              }&lt;br /&gt;          }&lt;br /&gt;          _key = _key.replace(/(^\s+|\s+$)/, '');&lt;br /&gt;          val = val.replace(/(^\s+|\s+$)/, '');&lt;br /&gt;          ele.style[_key] = val;&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;window.addEventListener("DOMContentLoaded", function(e){&lt;br /&gt;  highlightbloggercode.onLoad(e);&lt;br /&gt;}, false);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-1888558643164241085?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/1888558643164241085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/finished-extension.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1888558643164241085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1888558643164241085'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/finished-extension.html' title='finished the extension'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-1149587734790144575</id><published>2009-05-12T16:49:00.000+08:00</published><updated>2009-05-15T14:05:02.917+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>test-cpp</title><content type='html'>&lt;code class="prettyprint lang-cpp"&gt;&lt;br /&gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;#include &amp;lt;vector&amp;gt;&lt;br /&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;int foo(int i) {&lt;br /&gt;   return i + 1;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int bar(int i) {&lt;br /&gt;   return i * 10;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;typedef int(FP) (int);&lt;br /&gt;&lt;br /&gt;int proccess(FP *fp, int i) {&lt;br /&gt;   int r = (*fp)(i);&lt;br /&gt;   cout &amp;lt;&amp;lt; r &amp;lt;&amp;lt; endl;&lt;br /&gt;   return r;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// the basic one&lt;br /&gt;class CompInt {&lt;br /&gt;   typedef int(*_FP)(int);&lt;br /&gt;public:&lt;br /&gt;   CompInt(_FP f, _FP g) : fp(f), gp(g){}&lt;br /&gt;   int operator() (int _i) {&lt;br /&gt;       return (*fp)((*gp)(_i));&lt;br /&gt;   }&lt;br /&gt;private:&lt;br /&gt;   _FP fp;&lt;br /&gt;   _FP gp;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;// template but need to specify the FOUR parameter types&lt;br /&gt;/*&lt;br /&gt;template&amp;lt;class F, class G, class X, class Y&amp;gt; class Comp {&lt;br /&gt;public:&lt;br /&gt;   Comp(F f0, G g0): f(f0), g(g0) {}&lt;br /&gt;   Y operator() (X x) const {&lt;br /&gt;       return f(g(x));&lt;br /&gt;   }&lt;br /&gt;private:&lt;br /&gt;   F f;&lt;br /&gt;   G g;&lt;br /&gt;};&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;// the COMMON template function object&lt;br /&gt;template&amp;lt;class X, class Y&amp;gt; class Comp_base {&lt;br /&gt;public:&lt;br /&gt;   virtual Y operator() (X) const = 0;&lt;br /&gt;   virtual Comp_base* clone() const = 0;&lt;br /&gt;   virtual ~Comp_base() {}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;template&amp;lt;class F, class G, class X, class Y&amp;gt; class CompCommon: public Comp_base&amp;lt;X, Y&amp;gt; {&lt;br /&gt;public:&lt;br /&gt;   CompCommon(F f0, G g0): f(f0), g(g0) { }&lt;br /&gt;   Y operator() (X x) const {&lt;br /&gt;       return f(g(x));&lt;br /&gt;   }&lt;br /&gt;   Comp_base&amp;lt;X, Y&amp;gt;* clone() const {&lt;br /&gt;       return new CompCommon(*this);&lt;br /&gt;   }&lt;br /&gt;private:&lt;br /&gt;   F f;&lt;br /&gt;   G g;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;template&amp;lt;class X, class Y&amp;gt; class Composition {&lt;br /&gt;public:&lt;br /&gt;   template&amp;lt;class F, class G&amp;gt; Composition(F, G);&lt;br /&gt;   Composition(const Composition&amp;amp;);&lt;br /&gt;   Composition&amp;amp; operator = (const Composition&amp;amp;);&lt;br /&gt;   ~Composition();&lt;br /&gt;   Y operator() (X) const;&lt;br /&gt;private:&lt;br /&gt;   Comp_base&amp;lt;X, Y&amp;gt;* p;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;template&amp;lt;class X, class Y&amp;gt;&lt;br /&gt;   template&amp;lt;class F, class G&amp;gt;&lt;br /&gt;   Composition&amp;lt;X, Y&amp;gt;::Composition(F f, G g) : p(new CompCommon&amp;lt;F, G, X, Y&amp;gt;(f, g)) {};&lt;br /&gt;&lt;br /&gt;template&amp;lt;class X, class Y&amp;gt;&lt;br /&gt;Composition&amp;lt;X, Y&amp;gt;::~Composition() {&lt;br /&gt;   delete p;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;template&amp;lt;class X, class Y&amp;gt;&lt;br /&gt;Composition&amp;lt;X, Y&amp;gt;::Composition(const Composition&amp;amp; c) : p(c.p-&amp;gt;clone()) { }&lt;br /&gt;&lt;br /&gt;template&amp;lt;class X, class Y&amp;gt;&lt;br /&gt;Composition&amp;lt;X, Y&amp;gt;&amp;amp; Composition&amp;lt;X, Y&amp;gt;::operator = (const Composition&amp;amp; c) {&lt;br /&gt;   if(this != &amp;amp;c) {&lt;br /&gt;       delete p;&lt;br /&gt;       p = c.p-&amp;gt;clone();&lt;br /&gt;   }&lt;br /&gt;   return *this;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;template&amp;lt;class X, class Y&amp;gt;&lt;br /&gt;Y Composition&amp;lt;X, Y&amp;gt;::operator ()(X x) const {&lt;br /&gt;   return (*p)(x);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt;   // proccess(bar, proccess(foo, 1));&lt;br /&gt;   cout &amp;lt;&amp;lt; CompInt(foo, bar)(10) &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;   Comp&amp;lt;int (*)(int), int(*)(int), int, int&amp;gt; fg(foo, bar);&lt;br /&gt;   cout &amp;lt;&amp;lt; fg(1) &amp;lt;&amp;lt; endl;&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   Composition&amp;lt;int, int&amp;gt; fg2(foo, bar);&lt;br /&gt;   cout &amp;lt;&amp;lt; fg2(1) &amp;lt;&amp;lt; endl;&lt;br /&gt;&lt;br /&gt;   return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-1149587734790144575?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/1149587734790144575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/test-cpp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1149587734790144575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1149587734790144575'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/test-cpp.html' title='test-cpp'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-1917358671263784463</id><published>2009-05-12T14:54:00.003+08:00</published><updated>2009-05-12T15:17:33.032+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='extension'/><title type='text'>firefox extension for blogger, quick paste code to your post</title><content type='html'>OK, I'm a little lazy. It take my whole afternoon for this tool, only 160 line codes. Because I forget how to execute the js code on a web page via extension. At last I found the solution in &lt;a href="http://www.squarefree.com/shell/"&gt;Javascript Shell &lt;/a&gt;, it change the location.href = 'javascript:...'; maybe I did this before, but I don't know whether it's a good idea.&lt;br /&gt;Maybe you know google blogger doesn't support code highlight, thanks for &lt;a href="http://code.google.com/p/prettyprint/"&gt;pretty print&lt;/a&gt;, we can post our beautiful code (how to use see &lt;a href="http://xizhizhu.blogspot.com/2009/01/bloggerblogspot.html"&gt;here &lt;/a&gt;plz), but it's a little troublesome you need to modify the html code, and add &lt;code...&gt; to surrond it, the nightmare is you cannot post html code (there is another tool for u to hightlight your html code, see &lt;a href="http://tools.devshed.com/webmaster-tools/syntax-highlighting/"&gt;ASH&lt;/a&gt;).&lt;br /&gt;This small tool add a button "Code" in the normal mode, you can paste code in your posts conveniently.&lt;br /&gt;A little more work should be done: user auto customize the code type they frequently use.&lt;br /&gt;Maybe the window for us to paste code could be look better.&lt;br /&gt;bugs I haven't found.&lt;br /&gt;now, I don't know how to share this tool...&lt;br /&gt;&lt;code class="prettyprint lang-js"&gt;&lt;br /&gt;var highlightbloggercode = {&lt;br /&gt;  onLoad: function(event){&lt;br /&gt;      this.initialized = true;&lt;br /&gt;      var doc = event.originalTarget;&lt;br /&gt;      if (!doc || doc == null || doc.location == null)&lt;br /&gt;          return;&lt;br /&gt;      var href = doc.location.href;&lt;br /&gt;      var reg = /^http:\/\/www\.blogger\.com\/post-(create|edit)\.g\?blogID=/i;&lt;br /&gt;      // reg = /^http:\/\/127\.0\.0\.1/i;&lt;br /&gt;      if (href &amp;amp;&amp;amp; href.match(reg)) {&lt;br /&gt;//            alert(href);&lt;br /&gt;//            doc.location.href = 'javascript:bar()';&lt;br /&gt;//            return ;&lt;br /&gt;          if(!window._a) window._a = [];&lt;br /&gt;          window._a.push(event);&lt;br /&gt;          this.win = window.content.window;&lt;br /&gt;          this.doc = window.content.document;&lt;br /&gt;        &lt;br /&gt;          var _this = this;&lt;br /&gt;          setTimeout(function() {&lt;br /&gt;              new _this.AddCode(window.content, window.content.document);&lt;br /&gt;          }, 1000);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  AddCode: function(win, doc) {&lt;br /&gt;      this.win = win;&lt;br /&gt;      this.doc = doc;&lt;br /&gt;      this.btn = null;&lt;br /&gt;      this.btnId = '_height_code_btn';&lt;br /&gt;      this._codeDiv = null;&lt;br /&gt;    &lt;br /&gt;      this.langs = ['*', 'cpp', 'js', 'html'];&lt;br /&gt;      this.addBtn();&lt;br /&gt;  }&lt;br /&gt;};&lt;br /&gt;highlightbloggercode.AddCode.prototype = {&lt;br /&gt;  addBtn: function(){&lt;br /&gt;      try {&lt;br /&gt;          this.btn = this.doc.getElementById(this.btnId);&lt;br /&gt;          if (!this.btn) {&lt;br /&gt;              var input = this._create('input');&lt;br /&gt;              input.type = 'button';&lt;br /&gt;              input.id = this.btnId;&lt;br /&gt;              input.value = "Code";&lt;br /&gt;              this.doc.getElementById('htmlbar_Buttons').appendChild(input);&lt;br /&gt;              this.btn = input;&lt;br /&gt;              var _this = this;&lt;br /&gt;              var handler = function(){&lt;br /&gt;                  _this._doAddCode();&lt;br /&gt;              }&lt;br /&gt;              this.btn.addEventListener('click', handler, false);&lt;br /&gt;          }&lt;br /&gt;      } catch(e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _doAddCode: function() {&lt;br /&gt;      try {&lt;br /&gt;          var div = this._create('div');&lt;br /&gt;          div.style.position = 'fixed';&lt;br /&gt;          div.style.top = '100px';&lt;br /&gt;          div.style.left = '100px';&lt;br /&gt;          div.style.zIndex = 999;&lt;br /&gt;          div.style.width = '500px';&lt;br /&gt;          div.style.height = '300px';&lt;br /&gt;          div.style.padding = '10px';&lt;br /&gt;          div.style.border = '2px solid green';&lt;br /&gt;          div.style.background = '#f0f0f0';&lt;br /&gt;        &lt;br /&gt;          // textarea      &lt;br /&gt;          var textarea = this._create('textarea');&lt;br /&gt;          textarea.style.width = '480px';&lt;br /&gt;          textarea.style.height = '240px';&lt;br /&gt;          div.appendChild(textarea);&lt;br /&gt;        &lt;br /&gt;          // paste code button&lt;br /&gt;          var input = this._create('input');&lt;br /&gt;          input.type = 'button';&lt;br /&gt;          input.value = 'OK';&lt;br /&gt;          div.appendChild(input);&lt;br /&gt;          var _this = this;&lt;br /&gt;          var handler = function(){&lt;br /&gt;              _this._doPasteCode();&lt;br /&gt;          }&lt;br /&gt;          input.addEventListener('click', handler, false);&lt;br /&gt;        &lt;br /&gt;          // options for code type&lt;br /&gt;          var select = this._create('select');&lt;br /&gt;          for (var i = 0; i != this.langs.length; ++i) {&lt;br /&gt;              var opt = this._create('option');&lt;br /&gt;              opt.value = opt.text = this.langs[i];&lt;br /&gt;              select.appendChild(opt);&lt;br /&gt;          }&lt;br /&gt;          div.appendChild(select);&lt;br /&gt;&lt;br /&gt;          // close button&lt;br /&gt;          input = this._create('input');&lt;br /&gt;          input.type = 'button';&lt;br /&gt;          input.value = 'close';&lt;br /&gt;          div.appendChild(input);&lt;br /&gt;          handler = function() {&lt;br /&gt;              _this._codeDiv.parentNode.removeChild(_this._codeDiv);&lt;br /&gt;          }&lt;br /&gt;          input.addEventListener('click', handler, false);&lt;br /&gt;        &lt;br /&gt;          this.doc.getElementsByTagName('body')[0].appendChild(div);&lt;br /&gt;          this._codeDiv = div;&lt;br /&gt;      }catch(e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _doPasteCode: function() {&lt;br /&gt;      try {&lt;br /&gt;          var code = this._codeDiv.getElementsByTagName('textarea')[0].value;&lt;br /&gt;          var type = this._codeDiv.getElementsByTagName('select')[0].value;&lt;br /&gt;          this._codeDiv.parentNode.removeChild(this._codeDiv);&lt;br /&gt;          this._pasteCode(code, type);&lt;br /&gt;      }catch(e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _pasteCode: function(code, type) {&lt;br /&gt;      try {&lt;br /&gt;          var src = ['&amp;lt;code class="prettyprint lang-' + type + '"&amp;gt;', this._encode(code), '&amp;lt;/code&amp;gt;'];&lt;br /&gt;          var str = 'javascript:Textbar.wrapSelection(\'\', \'' + this._convert(src.join("\n")) + '\')';&lt;br /&gt;          this.win.location.href = str;&lt;br /&gt;      }catch(e) {&lt;br /&gt;          alert(e);&lt;br /&gt;      }&lt;br /&gt;  },&lt;br /&gt;  _encode: function(str) {&lt;br /&gt;      str = str.replace(/&amp;amp;/g,'&amp;amp;amp;');&lt;br /&gt;      str = str.replace(/&amp;lt;/g,'&amp;amp;lt;');&lt;br /&gt;      str = str.replace(/&amp;gt;/g,'&amp;amp;gt;');&lt;br /&gt;      str = str.replace(/&amp;lt;/g,'&amp;amp;lt;');&lt;br /&gt;      str = str.replace(/\t/g, '    ');&lt;br /&gt;      str = str.replace(/(\r\n|\n)/g, '\n');&lt;br /&gt;      return str;&lt;br /&gt;  },&lt;br /&gt;  _convert: function(str) {&lt;br /&gt;      str = str.replace(/(['\\])/g, '\\$1');  &lt;br /&gt;      str = str.replace(/\n/g, '\\n');&lt;br /&gt;      return str;&lt;br /&gt;  },&lt;br /&gt;  _create: function(tag) {&lt;br /&gt;      return this.doc.createElement(tag);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;//DOMContentLoaded&lt;br /&gt;window.addEventListener("DOMContentLoaded", function(evt){&lt;br /&gt;  try {&lt;br /&gt;      highlightbloggercode.onLoad(evt);&lt;br /&gt;  }catch (e) {&lt;br /&gt;      alert(e);&lt;br /&gt;  }&lt;br /&gt;}, false);&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code...&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-1917358671263784463?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/1917358671263784463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/firefox-extension-for-blogger-quick.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1917358671263784463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1917358671263784463'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/firefox-extension-for-blogger-quick.html' title='firefox extension for blogger, quick paste code to your post'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-3700374683335467289</id><published>2009-05-12T12:56:00.002+08:00</published><updated>2009-05-12T15:26:17.803+08:00</updated><title type='text'>Test html code</title><content type='html'>&lt;code class="prettyprint lang-html"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;   &amp;lt;head&amp;gt;&lt;br /&gt;       &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&amp;gt;&lt;br /&gt;       &amp;lt;title&amp;gt;Untitled Document&amp;lt;/title&amp;gt;&lt;br /&gt;       &amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;           textarea {&lt;br /&gt;               width: 600px;&lt;br /&gt;               height: 200px;&lt;br /&gt;           }&lt;br /&gt;       &amp;lt;/style&amp;gt;&lt;br /&gt;   &amp;lt;/head&amp;gt;&lt;br /&gt;   &amp;lt;body&amp;gt;&lt;br /&gt;       &amp;lt;textarea id="src"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;       &amp;lt;textarea id="desc"&amp;gt;&amp;lt;/textarea&amp;gt;&lt;br /&gt;       &amp;lt;button onclick='s()'&amp;gt;C&amp;lt;/button&amp;gt;&lt;br /&gt;       &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;function c(str) {&lt;br /&gt;   return str.replace(/(['\\])/g, '\\$1');   &lt;br /&gt;}&lt;br /&gt;function s() {&lt;br /&gt;   document.getElementById('desc').value = c(document.getElementById('src').value);&lt;br /&gt;}&lt;br /&gt;       &amp;lt;/script&amp;gt;&lt;br /&gt;   &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-3700374683335467289?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/3700374683335467289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/adfas.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/3700374683335467289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/3700374683335467289'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/adfas.html' title='Test html code'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-3025508443936797305</id><published>2009-05-11T15:27:00.004+08:00</published><updated>2009-05-15T14:05:33.186+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='js'/><category scheme='http://www.blogger.com/atom/ns#' term='ie'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>ie7 rtl scrollbar bug: auto scroll to the right side.</title><content type='html'>&lt;code class="prettyprint lang-html"&gt;&lt;br /&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&amp;gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;Untitled Document&amp;lt;/title&amp;gt;&lt;br /&gt;        &amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;            #outer {&lt;br /&gt;                width: 200px;&lt;br /&gt;                height: 60px;&lt;br /&gt;                border: 1px solid red;&lt;br /&gt;                overflow: auto;&lt;br /&gt;            } #inner {&lt;br /&gt;                width: 1000px;&lt;br /&gt;                height: 20px;&lt;br /&gt;                background: green;&lt;br /&gt;            }&lt;br /&gt;        &amp;lt;/style&amp;gt;&lt;br /&gt;        &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;            function ch(){&lt;br /&gt;                var inner = document.getElementById('inner');&lt;br /&gt;                var outer = document.getElementById('outer');&lt;br /&gt;                // inner.style.backgroundColor = 'rgb(' + (gint(100) + 155) + ',' + (gint(100) + 155) + ',' + (gint(100) + 155) + ')';&lt;br /&gt;                outer.className = 'd' + new Date().getTime();&lt;br /&gt;                // alert(outer.scrollLeft);&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            function gint(i){&lt;br /&gt;                return parseInt(Math.random() * i);&lt;br /&gt;            }&lt;br /&gt;        &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body dir="rtl"&amp;gt;&lt;br /&gt;        &amp;lt;div id="outer"&amp;gt;&lt;br /&gt;            &amp;lt;div id="inner" onmousedown="ch();"&amp;gt;&lt;br /&gt;                Hello world!&lt;br /&gt;            &amp;lt;/div&amp;gt;&lt;br /&gt;        &amp;lt;/div&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-3025508443936797305?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/3025508443936797305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/ie7-rtl-scrollbar-bug-auto-scroll-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/3025508443936797305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/3025508443936797305'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/ie7-rtl-scrollbar-bug-auto-scroll-to.html' title='ie7 rtl scrollbar bug: auto scroll to the right side.'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-540585110763386832</id><published>2009-05-04T20:08:00.002+08:00</published><updated>2009-05-04T20:13:25.520+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cpp'/><title type='text'>construct array by nodefault class</title><content type='html'>Just a test for pretty.js :)&lt;br /&gt;&lt;code class="prettyprint lang-cpp"&gt;&lt;br /&gt;#include &lt;iostream&gt;&lt;br /&gt;#include &lt;vector&gt;&lt;br /&gt;using namespace std;&lt;br /&gt;&lt;br /&gt;class NoDefault {&lt;br /&gt; friend ostream&amp; operator &lt;&lt; (ostream&amp; os, const NoDefault&amp; o);&lt;br /&gt;private:&lt;br /&gt; static unsigned _id;&lt;br /&gt; unsigned id;&lt;br /&gt; unsigned pid;&lt;br /&gt;public:&lt;br /&gt; NoDefault(char ch){&lt;br /&gt;  id = ++_id;&lt;br /&gt;  pid = 0;&lt;br /&gt;  cout &lt;&lt; "NoDefault(char): " &lt;&lt; id &lt;&lt; endl;&lt;br /&gt; }&lt;br /&gt; NoDefault(const NoDefault&amp; o) {&lt;br /&gt;  id = ++_id;&lt;br /&gt;  pid = o.id;&lt;br /&gt;  cout &lt;&lt; "NoDefault(const NoDefault&amp;): " &lt;&lt; id &lt;&lt; " by pid: " &lt;&lt; o.id &lt;&lt; endl;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;unsigned NoDefault::_id = 0;&lt;br /&gt;&lt;br /&gt;ostream&amp; operator &lt;&lt; (ostream&amp; os, const NoDefault&amp; o) {&lt;br /&gt; os &lt;&lt; "id: " &lt;&lt; o.id &lt;&lt; ";\tpid: " &lt;&lt; o.pid;&lt;br /&gt; return os;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;int main() {&lt;br /&gt; //! NoDefault o0; // error&lt;br /&gt; NoDefault o1('1');&lt;br /&gt; NoDefault o2(o1);&lt;br /&gt; &lt;br /&gt; // cannot initialize array&lt;br /&gt; //! NoDefault os0[10];&lt;br /&gt; &lt;br /&gt; vector&lt;NoDefault&gt; v0;&lt;br /&gt; v0.push_back(o1);&lt;br /&gt; &lt;br /&gt; cout &lt;&lt; "vector&lt;&gt; v(n, c)" &lt;&lt; endl;&lt;br /&gt; //! vector&lt;NoDefault&gt; v1(10);&lt;br /&gt; vector&lt;NoDefault&gt; v2(10, NoDefault('1'));&lt;br /&gt; &lt;br /&gt; // malloc &amp; new &lt;br /&gt; //! NoDefault *op1 = new NoDefault[10];&lt;br /&gt; &lt;br /&gt; // malloc space for 10 NoDefault objects, but not initialize it.&lt;br /&gt; NoDefault *op2 = (NoDefault*)malloc(sizeof(NoDefault) * 10);&lt;br /&gt; new(op2 + 1) NoDefault('c'); // initilize op2[1]&lt;br /&gt; cout &lt;&lt; op2[1] &lt;&lt; endl;&lt;br /&gt; cout &lt;&lt; op2[0] &lt;&lt; endl; // op2[0] is not initialized&lt;br /&gt; return 0;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-540585110763386832?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/540585110763386832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/construct-array-by-nodefault-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/540585110763386832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/540585110763386832'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/05/construct-array-by-nodefault-class.html' title='construct array by nodefault class'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3347696864826797497.post-1698128567769051631</id><published>2009-04-03T12:18:00.000+08:00</published><updated>2009-04-03T12:32:43.176+08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='thewordunevermeet'/><title type='text'>All the begining</title><content type='html'>OK, I've used several blogs, but the headache problem is they are not stable. I want a blog which is stable and I can customize it convenient. Also I will post many codes in my blog, so it better could format &amp;amp; &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;highlight&lt;/span&gt; code as well. Now, the hope is blogger will meet my requirements. I like &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;google's&lt;/span&gt; product, it's simple, speed but the functions are powerful, also most of the products supply &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;APIs&lt;/span&gt; for us to develop some little &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;toolkits&lt;/span&gt; by myself. I think the blogger is one of them, so start my surf here!~&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3347696864826797497-1698128567769051631?l=wendong-zhang.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wendong-zhang.blogspot.com/feeds/1698128567769051631/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wendong-zhang.blogspot.com/2009/04/all-begining.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1698128567769051631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3347696864826797497/posts/default/1698128567769051631'/><link rel='alternate' type='text/html' href='http://wendong-zhang.blogspot.com/2009/04/all-begining.html' title='All the begining'/><author><name>享受分享——Maxwin's</name><uri>http://www.blogger.com/profile/10718218275639105254</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
