On Sep 30, 2011, at 9:09 PM, Oliver Hunt wrote:
>> 1. Oliver and others do want x and y to be in scope somehow. They can't be
>> via the |this| parameter object on the scope chain, though. That's dynamic
>> scope (the prototype is extensible, or *a* prototype, possibly
>> Object.prototype, is). But the desire to avoid this. prefixing is natural
>> and predictable for people coming from C++, Java, etc. Should we consider
>> supporting this expectation somehow, rather than steering people away from
>> it with less natural syntax?
>
> My recent proposals have not been placing member fields in scope (all my
> examples use this.blah), they have merely been providing a declarative syntax
> to define the shape of an instance of the object.
Ok, noted -- sorry, I meant to write "Gavin" not "Oliver" ;-). The idea of
instance variables being in scope does keep coming up.
> I also see the constructor(this.x, ..) stuff as syntactic sugar that is
> unrelated to the actual class semantics -- that syntax could be added at a
> later date and would not impact the behaviour of classes,
Yes, agreed as far as your statement goes. We could also add it an earlier date
and not impact classes, I hope you'll agree. Just trying not to cast it out
into the far future.
Also, I can make a conservative case for restricting "this." parameter name
prefixing to constructor. That's where it pays off, and we don't have to worry
about unintended consequences in non-constructors.
> and if it were added i see no reason to restrict it solely "constructors".
> That said I don't like the syntax at all :D
What, if any, syntax for avoiding repeating each member name three times, do
you prefer?
/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss