> 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
> <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
>
> <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
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss