Inline

-----

Isiah Meadows
[email protected]

Looking for web consulting? Or a new website?
Send me an email and we can get started.
www.isiahmeadows.com

On Thu, Jan 11, 2018 at 2:10 PM, Brandon Andrews
<[email protected]> wrote:
>
> That is a very useful document. I guess I haven't opened the proposal in a 
> while.
>
>
> He puts a lot of stress on preserving encapsulation where as I was planning 
> on relying on a type system to optionally provide that feature. That is given 
> a dynamically typed variable accessing privates would probably be allowed. 
> (Statically typed variables would detect and not allow that kind of like a 
> more strict usage).

The issue with leveraging static typing is that JS has never been a
statically typed language. Also, private fields are generally
something you shouldn't need static types to detect - even without the
sigil, it *is* in fact possible to require something like `private
foo` as a declaration and alter property lookup within classes to
check for local private names (for class instances) before public
ones. (Decided to create a GH issue out of this:
https://github.com/tc39/proposal-class-fields/issues/69)

> I think the inheritance and using private names as keys are decent arguments. 
> That said I'm personally not against allowing inherited classes access to 
> their base class private members though. That is private acting like 
> protected in C++ I think is fine for ECMAScript. Am I alone in being fine 
> with that behavior? I'm kind of leaning toward: 
> https://github.com/tc39/proposal-private-fields/issues/14#issuecomment-216348883
>  that syntax for a true private class scope variable.

Note: not even Java allows subclasses to access superclasses' private fields.

>
> The key name conflict seems niche outside of key based data structures. I 
> wrote an ORM system before and just used a key called "internal" to hold data 
> in the past to get around a similar conflict. The # sounds like a similar 
> workaround when required but allows everything to not be hidden in a nested 
> object which is nice.
>
> Are "protected" class fields a thing in this discussion at all? Or is the 
> idea to use or implement a friend system later somehow?

See https://github.com/tc39/proposal-decorators/issues/25.

>
>
> With how I use Javascript currently, and the direction I want ECMAScript to 
> head - toward types - I don't particularly like the proposal or necessarily 
> support its goals toward creating an ideal encapsulation. (Also I really 
> dislike the syntax).
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to