Native Proxy Syntax
Alex Kodat
alexkodat at gmail.com
Wed Aug 23 15:55:30 UTC 2017
It would seem that a more general solution would be to allow let inside a
class definition and have the constructor close over the variables declared
in the class:
class MyClass {
let get = (target, name) => {
if (name in target) return target[name];
// ... do something to determine property
}
constructor() {
return new Proxy(this, {get});
}
}
```
While this does require an extra return statement it's reasonably tidy and
has the huge benefit of providing private variables in a class (as local
variables in a closure). But I have to believe that this has been discussed
ad nauseum and there's probably a very good reason let (or some equivalent)
was not part of class.
-----Original Message-----
From: es-discuss [mailto:es-discuss-bounces at mozilla.org] On Behalf Of Vihan
Bhargava
Sent: Wednesday, August 23, 2017 10:08 AM
To: es-discuss at mozilla.org
Subject: Native Proxy Syntax
The `Proxy` class is great for classes however at the moment, the current
syntax can be unwieldy:
```
class MyClass {
constructor() {
return new Proxy(this, {
get: function(target, name) {
if (name in target) return target[name];
// ... do something to determine property
}
});
}
}
```
My proposal is to introduce a more idiomatic syntax for proxies in classes:
```
class MyClass {
constructor () { ... }
get *(name) {
// ... do something to determine property
}
}
```
This already is much more clear than the above.
_______________________________________________
es-discuss mailing list
es-discuss at mozilla.org
https://mail.mozilla.org/listinfo/es-discuss
More information about the es-discuss
mailing list