<div><span class="Apple-style-span" style="color: rgb(32, 32, 32); font-family: 'Droid Sans', arial, sans-serif; font-size: 13px; background-color: rgb(255, 255, 255); "><div>I would like to add my suggestion for js classes.</div>

<div><br></div><div><br></div><div><a href="https://gist.github.com/1224324" target="_blank" style="color: rgb(103, 117, 58); ">https://gist.github.com/1224324</a></div><div><br></div><div><br></div><div>The key points are: </div>

<div><br></div><div><ul><li style="margin-left: 15px; ">Constructors are functions named the same as the class.</li><li style="margin-left: 15px; ">Inside the class, <i>this</i> refers to the class instance.</li><li style="margin-left: 15px; ">

Functions and variables are declared outside the constructor, inside the class block.</li><li style="margin-left: 15px; "><font face="'courier new', monospace">function </font><font face="arial, helvetica, sans-serif">and</font><font face="'courier new', monospace"> var </font><font face="arial, helvetica, sans-serif">keywords are optional after  </font><font face="'courier new', monospace">private</font><font face="arial, helvetica, sans-serif">  or  </font><font face="'courier new', monospace">public</font><font face="arial, helvetica, sans-serif"> keywords.</font></li>

<li style="margin-left: 15px; "><font face="arial, helvetica, sans-serif">Getters, Setters are optional, but often useful. My example could be very concise after removing comments, spacing and getters/setters.</font></li>

<li style="margin-left: 15px; "><font face="arial, helvetica, sans-serif">When </font><span style="font-family: arial, helvetica, sans-serif; ">compiled & minified, this syntax would be nearly equivalent to the current proposal (size-wise).</span></li>

</ul></div><div><br></div><div>Arguments & Warrant:</div><div><br></div><div><br></div><div>This form would be very recognizable to people familiar with classical object oriented languages, yet it still maintains javascript's dynamic nature and prototypal inheritance. Almost everything in this form of class could be compiled to a prototypal form. </div>

<div><br></div><div><br></div><div>I also argue that this form of class is far more readable, which is a very important trait as javascript applications become ever larger and more complicated</div><div>as the web evolves. </div>

<div><br></div><div><br></div><div>Lastly, I definitely have to veto the private @ syntax as posted in Brendan's TXJS slides. Apparently M. Night is also on the ECMA committee, because having symbols act as both operators and special, prefixed accessors would be quite a twist. :) </div>

</span></div><div><br></div><br clear="all">Jonathan Dumaine<br>+1 50.55.10.11.12<br>