﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-存阳光的罐子-随笔分类-dojo</title><link>http://www.blogjava.net/housun/category/38347.html</link><description>新开的</description><language>zh-cn</language><lastBuildDate>Wed, 18 Mar 2009 18:21:08 GMT</lastBuildDate><pubDate>Wed, 18 Mar 2009 18:21:08 GMT</pubDate><ttl>60</ttl><item><title>dojo之面向对象编程</title><link>http://www.blogjava.net/housun/archive/2009/03/18/260472.html</link><dc:creator>housun</dc:creator><author>housun</author><pubDate>Wed, 18 Mar 2009 06:21:00 GMT</pubDate><guid>http://www.blogjava.net/housun/archive/2009/03/18/260472.html</guid><wfw:comment>http://www.blogjava.net/housun/comments/260472.html</wfw:comment><comments>http://www.blogjava.net/housun/archive/2009/03/18/260472.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/housun/comments/commentRss/260472.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/housun/services/trackbacks/260472.html</trackback:ping><description><![CDATA[<span class="hilite1"><span style="font-size: 24pt;"><span class="hilite1"><strong>dojo之面向对象编程<br />
</strong></span></span><br />
Dojo</span>作为一个强大的javascript工具箱，有它自己面向对象的开发方式，用declare解决了对象的创建和继承的问题，文档中的例子：&nbsp;<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img id="Codehighlighter1_47_326_Open_Image" onclick="this.style.display='none'; Codehighlighter1_47_326_Open_Text.style.display='none'; Codehighlighter1_47_326_Closed_Image.style.display='inline'; Codehighlighter1_47_326_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_47_326_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_47_326_Closed_Text.style.display='none'; Codehighlighter1_47_326_Open_Image.style.display='inline'; Codehighlighter1_47_326_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" alt="" align="top" /><span style="color: rgb(0, 0, 0);">dojo.declare(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">my.classes.bar</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;my.classes.foo,&nbsp;</span><span id="Codehighlighter1_47_326_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_47_326_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;properties&nbsp;to&nbsp;be&nbsp;added&nbsp;to&nbsp;the&nbsp;class&nbsp;prototype&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;someValue:&nbsp;</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">,&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;initialization&nbsp;function&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img id="Codehighlighter1_178_247_Open_Image" onclick="this.style.display='none'; Codehighlighter1_178_247_Open_Text.style.display='none'; Codehighlighter1_178_247_Closed_Image.style.display='inline'; Codehighlighter1_178_247_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_178_247_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_178_247_Closed_Text.style.display='none'; Codehighlighter1_178_247_Open_Image.style.display='inline'; Codehighlighter1_178_247_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constructor:&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">()</span><span id="Codehighlighter1_178_247_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_178_247_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.myComplicatedObject&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;ReallyComplicatedObject();&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">,&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">&nbsp;other&nbsp;functions&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img id="Codehighlighter1_299_321_Open_Image" onclick="this.style.display='none'; Codehighlighter1_299_321_Open_Text.style.display='none'; Codehighlighter1_299_321_Closed_Image.style.display='inline'; Codehighlighter1_299_321_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img id="Codehighlighter1_299_321_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_299_321_Closed_Text.style.display='none'; Codehighlighter1_299_321_Open_Image.style.display='inline'; Codehighlighter1_299_321_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" /></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;someMethod:&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">()</span><span id="Codehighlighter1_299_321_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img src="http://www.blogjava.net/Images/dot.gif" alt="" /></span><span id="Codehighlighter1_299_321_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;doStuff();&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" alt="" align="top" />);&nbsp;&nbsp;&nbsp;</span></div>
&nbsp; <br />
declare的第一个参数是对象名称，最后一个参数指定在这个对象里要添加的内容，包括函数和属性，写个例子 <br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img id="Codehighlighter1_28_207_Open_Image" onclick="this.style.display='none'; Codehighlighter1_28_207_Open_Text.style.display='none'; Codehighlighter1_28_207_Closed_Image.style.display='inline'; Codehighlighter1_28_207_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_28_207_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_28_207_Closed_Text.style.display='none'; Codehighlighter1_28_207_Open_Image.style.display='inline'; Codehighlighter1_28_207_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0, 0, 0);">dojo.declare(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">Apple</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">null</span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span id="Codehighlighter1_28_207_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_28_207_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;price:&nbsp;</span><span style="color: rgb(0, 0, 0);">5</span><span style="color: rgb(0, 0, 0);">,&nbsp;&nbsp;<br />
<img id="Codehighlighter1_78_123_Open_Image" onclick="this.style.display='none'; Codehighlighter1_78_123_Open_Text.style.display='none'; Codehighlighter1_78_123_Closed_Image.style.display='inline'; Codehighlighter1_78_123_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_78_123_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_78_123_Closed_Text.style.display='none'; Codehighlighter1_78_123_Open_Image.style.display='inline'; Codehighlighter1_78_123_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constructor:&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">(weight)&nbsp;</span><span id="Codehighlighter1_78_123_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_78_123_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.total&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;weight&nbsp;</span><span style="color: rgb(0, 0, 0);">*</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.price;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">,&nbsp;&nbsp;<br />
<img id="Codehighlighter1_148_202_Open_Image" onclick="this.style.display='none'; Codehighlighter1_148_202_Open_Text.style.display='none'; Codehighlighter1_148_202_Closed_Image.style.display='inline'; Codehighlighter1_148_202_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_148_202_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_148_202_Closed_Text.style.display='none'; Codehighlighter1_148_202_Open_Image.style.display='inline'; Codehighlighter1_148_202_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print:&nbsp;</span><span style="color: rgb(0, 0, 255);">function</span><span style="color: rgb(0, 0, 0);">()&nbsp;</span><span id="Codehighlighter1_148_202_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_148_202_Open_Text"><span style="color: rgb(0, 0, 0);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">The&nbsp;total&nbsp;price&nbsp;is&nbsp;</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 0);">+</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">this</span><span style="color: rgb(0, 0, 0);">.total);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0);">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);">&nbsp;myapple&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Apple(</span><span style="color: rgb(0, 0, 0);">10</span><span style="color: rgb(0, 0, 0);">);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />myapple.print();&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">输出结果："The&nbsp;total&nbsp;price&nbsp;is&nbsp;50"&nbsp;&nbsp;</span></div>
<br />
上例通过declare创建了一个Apple对象，javascript本身没有类的概念，可以使用对象本身来创建新的对象myapple，通过构造函数的参数值计算苹果的总价，print函数输出结果，非常形象的构建了一个Apple&#8220;类&#8221;，非常容易理解。要注意的是，这里如果声明默认构造函数， "new Apple(10)"将直接执行默认构造函数，带参数的构造函数就被忽略了，并非C++中顺序执行。 <br />
<br />
&nbsp;&nbsp;&nbsp; 注意<span class="hilite1">dojo</span>.declare第二个参数，如果创建一个独立的新对象，可以设为null，当需要从其他一个或多个对象继承时，则为对象名称，这样就方便的实现了对象继承。多个对象继承，declare第二个参数为一数组，第一个元素为原型父对象，其他的为mixin对象，通过代码来理解。 <br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img id="Codehighlighter1_8_744_Open_Image" onclick="this.style.display='none'; Codehighlighter1_8_744_Open_Text.style.display='none'; Codehighlighter1_8_744_Closed_Image.style.display='inline'; Codehighlighter1_8_744_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_8_744_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_8_744_Closed_Text.style.display='none'; Codehighlighter1_8_744_Open_Image.style.display='inline'; Codehighlighter1_8_744_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">script</span><span style="color: rgb(0, 0, 255);">&gt;</span><span id="Codehighlighter1_8_744_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_8_744_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;<br />
<img id="Codehighlighter1_40_328_Open_Image" onclick="this.style.display='none'; Codehighlighter1_40_328_Open_Text.style.display='none'; Codehighlighter1_40_328_Closed_Image.style.display='inline'; Codehighlighter1_40_328_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_40_328_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_40_328_Closed_Text.style.display='none'; Codehighlighter1_40_328_Open_Image.style.display='inline'; Codehighlighter1_40_328_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;dojo.declare(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">Apple</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">null</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;</span><span id="Codehighlighter1_40_328_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_40_328_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;price&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">5</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;&nbsp;<br />
<img id="Codehighlighter1_94_141_Open_Image" onclick="this.style.display='none'; Codehighlighter1_94_141_Open_Text.style.display='none'; Codehighlighter1_94_141_Closed_Image.style.display='inline'; Codehighlighter1_94_141_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_94_141_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_94_141_Closed_Text.style.display='none'; Codehighlighter1_94_141_Open_Image.style.display='inline'; Codehighlighter1_94_141_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constructor&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">function</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">(weight)&nbsp;</span><span id="Codehighlighter1_94_141_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_94_141_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">this</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">.total&nbsp;</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">=</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;weight&nbsp;</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">*</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">this</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">.price;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);">//</span><span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constructor&nbsp;:&nbsp;function()&nbsp;{&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />//</span><span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert("Create&nbsp;Apple&nbsp;!");&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />//</span><span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0); background-color: rgb(245, 245, 245);"><br />
<img id="Codehighlighter1_266_322_Open_Image" onclick="this.style.display='none'; Codehighlighter1_266_322_Open_Text.style.display='none'; Codehighlighter1_266_322_Closed_Image.style.display='inline'; Codehighlighter1_266_322_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_266_322_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_266_322_Closed_Text.style.display='none'; Codehighlighter1_266_322_Open_Image.style.display='inline'; Codehighlighter1_266_322_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" /></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">function</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">()&nbsp;</span><span id="Codehighlighter1_266_322_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_266_322_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">The&nbsp;total&nbsp;price&nbsp;is&nbsp;</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">+</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">this</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">.total);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;&nbsp;<br />
<img id="Codehighlighter1_369_598_Open_Image" onclick="this.style.display='none'; Codehighlighter1_369_598_Open_Text.style.display='none'; Codehighlighter1_369_598_Closed_Image.style.display='inline'; Codehighlighter1_369_598_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_369_598_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_369_598_Closed_Text.style.display='none'; Codehighlighter1_369_598_Open_Image.style.display='inline'; Codehighlighter1_369_598_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;dojo.declare(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">AppleTree</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">null</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;</span><span id="Codehighlighter1_369_598_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_369_598_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img id="Codehighlighter1_401_443_Open_Image" onclick="this.style.display='none'; Codehighlighter1_401_443_Open_Text.style.display='none'; Codehighlighter1_401_443_Closed_Image.style.display='inline'; Codehighlighter1_401_443_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_401_443_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_401_443_Closed_Text.style.display='none'; Codehighlighter1_401_443_Open_Image.style.display='inline'; Codehighlighter1_401_443_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constructor&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">function</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">()&nbsp;</span><span id="Codehighlighter1_401_443_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_401_443_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">Create&nbsp;AppleTree&nbsp;!</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;&nbsp;<br />
<img id="Codehighlighter1_470_515_Open_Image" onclick="this.style.display='none'; Codehighlighter1_470_515_Open_Text.style.display='none'; Codehighlighter1_470_515_Closed_Image.style.display='inline'; Codehighlighter1_470_515_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_470_515_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_470_515_Closed_Text.style.display='none'; Codehighlighter1_470_515_Open_Image.style.display='inline'; Codehighlighter1_470_515_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">function</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">()&nbsp;</span><span id="Codehighlighter1_470_515_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_470_515_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">This&nbsp;is&nbsp;an&nbsp;apple&nbsp;tree</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;&nbsp;<br />
<img id="Codehighlighter1_547_592_Open_Image" onclick="this.style.display='none'; Codehighlighter1_547_592_Open_Text.style.display='none'; Codehighlighter1_547_592_Closed_Image.style.display='inline'; Codehighlighter1_547_592_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_547_592_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_547_592_Closed_Text.style.display='none'; Codehighlighter1_547_592_Open_Image.style.display='inline'; Codehighlighter1_547_592_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;additional&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">function</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">()&nbsp;</span><span id="Codehighlighter1_547_592_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_547_592_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">This&nbsp;is&nbsp;a&nbsp;mixin&nbsp;class</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;&nbsp;<br />
<img id="Codehighlighter1_654_737_Open_Image" onclick="this.style.display='none'; Codehighlighter1_654_737_Open_Text.style.display='none'; Codehighlighter1_654_737_Closed_Image.style.display='inline'; Codehighlighter1_654_737_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_654_737_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_654_737_Closed_Text.style.display='none'; Codehighlighter1_654_737_Open_Image.style.display='inline'; Codehighlighter1_654_737_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;dojo.declare(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">GreenApple</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">,&nbsp;[Apple,&nbsp;AppleTree],&nbsp;</span><span id="Codehighlighter1_654_737_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_654_737_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img id="Codehighlighter1_686_731_Open_Image" onclick="this.style.display='none'; Codehighlighter1_686_731_Open_Text.style.display='none'; Codehighlighter1_686_731_Closed_Image.style.display='inline'; Codehighlighter1_686_731_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_686_731_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_686_731_Closed_Text.style.display='none'; Codehighlighter1_686_731_Open_Image.style.display='inline'; Codehighlighter1_686_731_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;constructor&nbsp;:&nbsp;</span><span style="color: rgb(0, 0, 255); background-color: rgb(245, 245, 245);">function</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">()&nbsp;</span><span id="Codehighlighter1_686_731_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_686_731_Open_Text"><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">{&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert(</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">Getting&nbsp;a&nbsp;green&nbsp;apple</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">"</span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);">&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0, 0, 0); background-color: rgb(245, 245, 245);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;);&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">script</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
<br />
创建一个GreenApple对象，测试alert执行顺序！mixin对象的方法将覆盖之前对象中的同名函数，除非子对象也声明了同名函数print。 <br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">输出&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />//</span><span style="color: rgb(0, 128, 0);">"The&nbsp;height&nbsp;of&nbsp;the&nbsp;tree&nbsp;is&nbsp;#ff0000"&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />//</span><span style="color: rgb(0, 128, 0);">"Getting&nbsp;a&nbsp;green&nbsp;apple"&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);">&nbsp;gapple&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;GreenApple();&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">输出，覆盖了Apple对象的print&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />//</span><span style="color: rgb(0, 128, 0);">"This&nbsp;is&nbsp;an&nbsp;apple&nbsp;tree"&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 0);">gapple.print();&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">"This&nbsp;is&nbsp;a&nbsp;mixin&nbsp;class"&nbsp;&nbsp;</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 0);">gapple.additional();&nbsp;&nbsp;</span></div>
<span class="hilite1"><br />
dojo</span>/_base/_loader/bootstrap.js有专门的mixin函数，用于对象的拷贝，将一个创建好的对象拷贝到新的对象中 <br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img id="Codehighlighter1_22_23_Open_Image" onclick="this.style.display='none'; Codehighlighter1_22_23_Open_Text.style.display='none'; Codehighlighter1_22_23_Closed_Image.style.display='inline'; Codehighlighter1_22_23_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_22_23_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_22_23_Closed_Text.style.display='none'; Codehighlighter1_22_23_Open_Image.style.display='inline'; Codehighlighter1_22_23_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: rgb(0, 0, 255);">var</span><span style="color: rgb(0, 0, 0);">&nbsp;copy&nbsp;</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">&nbsp;dojo.mixin(</span><span id="Codehighlighter1_22_23_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_22_23_Open_Text"><span style="color: rgb(0, 0, 0);">{}</span></span><span style="color: rgb(0, 0, 0);">,&nbsp;</span><span style="color: rgb(0, 0, 255);">new</span><span style="color: rgb(0, 0, 0);">&nbsp;Apple(</span><span style="color: rgb(0, 0, 0);">2</span><span style="color: rgb(0, 0, 0);">));&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" />copy.print();&nbsp;</span></div>
<br />
print输出结果是"The total price is 10"，mixin参数一定是创建好的对象实例，否则出错！<span class="hilite1">dojo</span>.extend则可以将一个或多个对象的属性、方法拷贝到一个原型上，通过prototype实现继承，这是继承的另外一种方式。 <br />
<br />
&nbsp;&nbsp;&nbsp; 通过declare、mixin、extend，<span class="hilite1">dojo</span>给我们提供了一种方便的对象创建与扩展机制，一般情况下够用了，感觉还是比较方便，使用时也存在一些限制，翻翻源代码就能理解。这里主要是要知道<span class="hilite1">dojo</span>是如何面向对象的，方便我们更好的理解<span class="hilite1">dojo</span>基础功能，及dijit和dojox，<span class="hilite1">dojo</span>最为强大还是它的widgets。本文涉及的js源码： <br />
mixin:<span class="hilite1">dojo</span>/_base/_loader/bootstrap.js <br />
extend:<span class="hilite1">dojo</span>/_base/lang.js <br />
declare:<span class="hilite1">dojo</span>/_base/declare.js <br />
<img src ="http://www.blogjava.net/housun/aggbug/260472.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/housun/" target="_blank">housun</a> 2009-03-18 14:21 <a href="http://www.blogjava.net/housun/archive/2009/03/18/260472.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>