<br><br><div class="gmail_quote">On Fri, Mar 23, 2012 at 7:00 AM, Herby Vojčík <span dir="ltr"><<a href="mailto:herby@mailbox.sk" target="_blank">herby@mailbox.sk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
<br>
Andreas Rossberg wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>
On 23 March 2012 08:42, Claus Reinke <<a href="mailto:claus.reinke@talk21.com" target="_blank">claus.reinke@talk21.com</a><br></div><div><div>
<mailto:<a href="mailto:claus.reinke@talk21.com" target="_blank">claus.reinke@talk21.<u></u>com</a>>> wrote:<br>
<br>
    - would it make sense to name the constructor after the class<br>
       (avoiding 'constructor' and 'new')?<br>
<br>
<br>
-1.<br>
<br>
I always considered this a bad choice of C++-derived class systems. It<br>
violates Don't-repeat-yourself, and thus is annoying e.g. when you<br>
rename things. It is less searchable and less readable locally, because<br>
you have to take the name of the surrounding class into account to<br>
decide what kind of declaration you are looking at. And it doesn't scale<br>
to anonymous classes, in case these ever become an option for ES.<br>
</div></div></blockquote>
Good point. ;-)<br>
<br>
The 'constructor' gets created anyway if classes are to be compatible with plain constructor functions semantics. That is big plus for 'constructor' (and big minus for 'new' since people may look for Class.prototype["new"} and not find it).<br>


<br>
I will repeat myself, I proposed this thing but no one reacted. It's short, does not clash as new mentioned before, and does not preclude constuctor magic in any way:<br>
<br>
class Class extends SuperClass {<br>
  @(params) { body } // constructor<br>
  @x(params) { body } // private-named method<br>
  y(params) { body } // plain method<br>
}<br>
<br>
Of course, this syntax is based on '@xxx' private name access pattern is also in the language - constructor is intentionally reusing this syntax, but with 'empty identifier' - as a special short construct to use for constructor. Reusing private name syntax is safe as to name clash, because it does not clash with property names (and using empty identifier, neither does clash with real private names).<br>

</blockquote><div><br></div><div>I'm not sure if you're suggesting we add private name support for this proposal, but that would be feature creep. If you are suggesting only @() for constructor, then I think that would still be pretty confusing and grawlixy. I suppose you could make the argument that the underlying constructor itself is some private property, and therefore makes sense to use @, but that seems like exposing internals on something that should be straightforward. If that was not your intention, then I think it's even more confusing because you're associating the constructor with something private.</div>
<div><br></div><div>- Russ</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
/Andreas<span><font color="#888888"><br>
</font></span></blockquote><span><font color="#888888">
<br>
Herby</font></span><div><div><br>
______________________________<u></u>_________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/<u></u>listinfo/es-discuss</a><br>
</div></div></blockquote></div><br>