<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Peter, our library makes extensive use of constructors without new as a declarative way to build a class. Consider the example:<div><br></div><div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;">apple.EngravingGalleryController= Class.create(coherent.ViewController, {</span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;"><br></span></font></div><div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;">&nbsp;&nbsp; &nbsp;tabs: coherent.ListView('div.tabs ul', {</span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;selectedIndexBinding: 'selectedTab',</span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;animated: 'true'</span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}),</span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;"><br></span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;">&nbsp;&nbsp; &nbsp;...</span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;"><br></span></font></div><div><font class="Apple-style-span" face="Monaco" size="3"><span class="Apple-style-span" style="font-size: 12px;">});</span></font></div><div><br></div><div>Of course, you could also use coherent.ListView as a constructor to create an explicit instance. Under the covers, the OOP mechanism dispatches to a factory function which is used to ultimately create the member.</div><div><br></div><div>This is a lot like the Python meta-programming stuff, except I don't have an addToClass hook to use.</div><div><br></div><div><br></div></div><div>On 14 Jan, 2009, at 9:19 AM, Peter Michaux wrote:</div><div><br class="Apple-interchange-newline"><blockquote type="cite"><div>The requirement that JavaScript needed to look like Java has long been<br>lamented. One of the key "looks" was the "new" keyword. &nbsp;Many people<br>don't like the use of the "new" keyword. Although "new" is here to<br>stay, could we obsolete it when using a class sugar?<br><br>Peter<br>_______________________________________________<br>Es-discuss mailing list<br><a href="mailto:Es-discuss@mozilla.org">Es-discuss@mozilla.org</a><br>https://mail.mozilla.org/listinfo/es-discuss<br></div></blockquote></div><br></div></body></html>