I noted some open issues on "Classes with Trait Composition"

Mark S. Miller erights at google.com
Thu May 19 14:10:27 PDT 2011


sent from android
On May 19, 2011 3:09 PM, "Bob Nystrom" <rnystrom at google.com> wrote:
>
>
>
> On Thu, May 19, 2011 at 11:47 AM, Brendan Eich <brendan at mozilla.com>
wrote:
>>
>> Here's another question: how many property initializations could be done
straight from the parameter of the same name?
>
>
> Of the 88 fields I looked at, 10 were straight copies of a constructor
argument. Another 4 are copies with an "if undefined then use this default
instead" check. That may be biased a bit low since most of the code I looked
at is UI widget-like stuff. Code that's more data-model oriented would
probably have more cases where a class is just wrapping a bunch of
arguments.
>
>> Apart from the desire to declare per-instance property names, do we
really need default values if the constructor author could write default
parameter values?
>>
>> class Point {
>>   constructor(x = 0, y = 0) {
>>     this.x = x;
>>     this.y = y;
>>   }
>>  ...
>> }
>
>
> That covers a different (though useful!) case. This would be helpful for
the 4 cases above where a field is initialized to a constructor argument if
given, or to a default value if not. For the 34 other cases, those fields
don't come from the constructor arguments at all.
>
>>
>> class Point {
>>   constructor(this.x = 0, this.y = 0) {
>>   }
>>  ...
>> }
>
>
> Yeah, that's in the document the proposal is linking to now (
https://docs.google.com/document/d/1gOFRSBOKtB8VjXC5LRhhNiGi1n1QQ6z1O6LyxjrOB3g/edit?hl=en_US).
I'd like to roll that into the proposal as an optional refinement. I really
really like this.

Please do. I like it too. But yes, as an optional refinement.

>>
>> The objection here is that @ is coveted, for private names or decorators.
>
>
> FWIW, my vote would be to keep that for decorators/annotations.
>
>>
>> Perhaps we could use leading dot in formal parameter names to mean this.:
>>
>> class Point {
>>   constructor(.x = 0, .y = 0);
>>  ...
>> }
>>
>> Comments welcome!
>
>
> That's delightful!
>
> - bob
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20110519/bd5d1769/attachment.html>


More information about the es-discuss mailing list