On 04/13/2018 01:38 AM, Sultan wrote:
The proposal is an explainer with regards to an alternative sigil-less syntax 
to back private fields/methods.

What does private(this)[property] do?

"private(this)[property]" and alternatively "private[property]" or "private.property" all invoke access of a private 
"property" on the "this" instance of the class, symmetrical to thesyntax/function nature of both the "super" 
and"import" keywords.

How do private fields come into existence?

Unless i've misunderstood what is meant by "come into existence" the proposals makes use of the 
reserved "private" keyword to define private fields i.e "private id = 1".

I was asking about what creates those fields.

What's private about private fields?

Outside of a private fields provider class, private fields/methods would not be 
accessible.

How do you prevent them from being forged or stuck onto unrelated objects?

What do you mean by this?

Writing your private field to an object that's not an instance of your class.

class A {
  private id = ...;
  private foo = ...;
  write(value) {
    private(this)["id"] = value;
    private(this)["foo"] = ... my private secret that anyone outside the class 
must not learn ...;
  }
}

and then invoking the above write method with a this value that's not an 
instance of A, such as a proxy.

    Waldemar
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to