Proxy's optional target

Dmitry Soshnikov dmitry.soshnikov at gmail.com
Mon Jan 14 21:55:23 PST 2013


On Jan 14, 2013, at 9:51 PM, Andrea Giammarchi wrote:

> uhm, you might be slightly behind current specs ... these changed proxy quite a lot so that first argument is the target, and second argument is the behavior.
> 
> var myProxy = new Proxy(target, handler);
> 

Oh, I'm aware about current pre-spec MDC article and API. And this is why saying. In most use-cases you probably wanna proxy an empty object, and this is why in current API you end up in code like this:

var p = new Proxy({}, handler);

And I'm saying about these "{}" always as the first argument.

Dmitry

> at least that's how Firefox implemented it right now :D
> 
> var
>   target = {test:123},
>   proxy = new Proxy(target, {
>     get: function ($target, key) {
>       alert($target === target); // true
>       return $target[key];
>     }
>   })
> ;
> alert(proxy.test); // 123
> 
> 
> On Mon, Jan 14, 2013 at 9:32 PM, Dmitry Soshnikov <dmitry.soshnikov at gmail.com> wrote:
> Hello,
> 
> Don't know whether it was mentioned/asked before (sorry if so), but just a note: probably it makes more sense making the target argument as optional and the second one in the Proxy constructor's API.
> 
> Proxy(handler[, target]):
> 
> 1. If target is undefined, let the target be new Object();
> ...
> 
> In this case we'll cover (probably the most used) use-case of direct-proxies:
> 
> var p = new Proxy({
>   get: function(target, name, value) {
>     ...
>   }
> });
> 
> Thanks,
> Dmitry
> _______________________________________________
> 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/20130114/b20bb03f/attachment.html>


More information about the es-discuss mailing list