Yes, correct. I want to be able to make a callable Proxy for non-callable
objects and don't understand why Proxies are having these restrictions.
As you can see I, and any other developer, can easily bypass this
restriction and make a wrapper function that actually will be never called
and just redirect calls made on Proxy to a method of an object.
If "apply" trap will be allowed for any type of targets this will make life
easier :)

2016-03-02 16:19 GMT+02:00 Claude Pache <[email protected]>:

>
> Le 2 mars 2016 à 13:21, Олег Галабурда <[email protected]> a écrit :
>
> Hi!
>
> I'm currently working on project that allows to manipulate objects passed
> from Worker.
> https://github.com/burdiuz/js-worker-interface
>
> It creates wrapper objects that record actions applied to this object and
> send commands to Worker. The problem is, when request is made I cannot know
> what kind of object is this, so in case of function I should give ability
> to make calls on the wrapper object.
> As example, this code:
>
> var api = new WorkerInterface('../webworker.js');
> api.requestTime();
>
> When "requestTime" was requested, it calls "get" and immediately returns
> new Proxy to serve function call. But at time when Proxy is created I do
> not know if that is function or not. Now I passed "apply" limitation by
> adding wrapper function and make Proxy think it works with function.
>
> https://github.com/burdiuz/js-worker-interface/blob/master/source/interface/proxy.js
>
>
> If I guess correctly your issue, you would like to have something similar
> to:
>
> foo.bar // not-a-function
>
> and:
>
> foo.bar() // a method call
>
> ? Indeed, that is not possible in JavaScript (and that limitation is not
> restricted to proxies).
>
>
> I found in discussions why "call" trap was rejected, but didn't find
> anything about restricting "apply" trap to functions only.
>
>
> Probably because "X is a function" is, by design, strictly equivalent to
> "X is callable"?
>
> —Claude
>
>


-- 
Oleg Galaburda
http://blog.actualwave.com/
http://jsinterface.googlecode.com/
http://guibuilder.org/
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to