Live data from Hacker News

Metaprogramming with ECMAScript 6 proxies

2ality.com

1–5 of 5 posts

Re: Metaprogramming with ECMAScript 6 proxies

#2
This is huge.

        var proto = new Proxy({}, {
            get(target, propertyKey, receiver) {
            console.log('GET '+propertyKey);
            return target[propertyKey];
         }});
I've been following ES6 pretty closely, but somehow I missed this huge feature. Don't get me wrong, I love generators and destructuring, but this is soooo cool.

Re: Metaprogramming with ECMAScript 6 proxies

#3

This is huge. var proto = new Proxy({}, { get(target, propertyKey, receiver) { console.log('GET '+propertyKey); return target[propertyKey]; }}); I've been following ES6 pretty closely, but somehow I missed this huge feature. Don't get me wrong, I love generators and destructuring, but this is soooo cool.

Should allow for the creation of a library to support Functional JS immutable instances...

Re: Metaprogramming with ECMAScript 6 proxies

#4

This is huge. var proto = new Proxy({}, { get(target, propertyKey, receiver) { console.log('GET '+propertyKey); return target[propertyKey]; }}); I've been following ES6 pretty closely, but somehow I missed this huge feature. Don't get me wrong, I love generators and destructuring, but this is soooo cool.

Getters have been in JS since ES5 and can do what you just wrote. Obv Proxy is more powerful/has more traps.

Re: Metaprogramming with ECMAScript 6 proxies

#5
post #4

This is huge. var proto = new Proxy({}, { get(target, propertyKey, receiver) { console.log('GET '+propertyKey); return target[propertyKey]; }}); I've been following ES6 pretty closely, but somehow I missed this huge feature. Don't get me wrong, I love generators and destructuring, but this is soooo cool.

Getters have been in JS since ES5 and can do what you just wrote. Obv Proxy is more powerful/has more traps.

Not completely: with getters, you have to decide on a specific set of properties, the proxy GET trap intercepts all get operations. But I agree that you don’t always need proxies.