Native Proxy Syntax

Matthew Robb matthewwrobb at gmail.com
Wed Aug 23 15:26:58 UTC 2017


I feel like this would be easier handled as a subclass helper:
```
f
​unction asProxy(traps={}, Class=function asProxy(){}) {
  return class extends Class {
    constructor() {
       super(...arguments);
       return new Proxy(this, traps);
    }
  }
}​

class MyClass extends asProxy({ ... }) { ... }

class MyOtherClass extends asProxy({ ... }, MyClass) { ... }
```


- Matthew Robb

On Wed, Aug 23, 2017 at 11:08 AM, Vihan Bhargava <contact at vihan.org> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20170823/9992d9d3/attachment.html>


More information about the es-discuss mailing list