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

