Brendan Eich wrote: > On Dec 21, 2007, at 7:33 AM, StevenLevithan wrote: > > > Yes, its easy to pull off oneself, so I don't care much other way. > > Still, it > > seems pretty weird to me to be able to do ``regex(str)`` but not > > ``regex.call(context, str)``. This is accentuated when typeof returns > > "function" for regexes (though it seems ES4 will change this to > > "object"). > > Hey Steve, Yuh-Ruey (I owe both of you replies to the list, for Steve > agreeing about ES3 capturing paren broken design, Yuh-Ruey on fine > points about instanceof, etc. -- I wanted to drop a note here, > quickly, and catch up next week while I'm off). >
I'm glad you still remember it :) > This raises the question: since there is only one argument to exec or > test, so why do you ever need to delegate invocation using apply or > call? The only case that comes to mind is a generic programming use- > case where you might have either a function object or a regexp and > you want to .apply it with an argument array. But again, you could > just invoke foo(arg) given foo denoted either a function or a regexp. > True, the most generic program would not want to hardwire argument > count, so would want .apply. But still, the motivation for call and > apply in RegExp.prototype seems weak. With currying, I find that use case a moot point. For example, we could do: foo(regex.exec.bind()) and foo would still be generic. So really, regex invocation is not needed. Speaking of bind (or whatever it's called), I hope the function is memoized, since it might be used a lot. _______________________________________________ Es4-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es4-discuss
