Add call and apply methods to RegExp.prototype
Steve
steves_list at hotmail.com
Fri Dec 21 19:58:26 PST 2007
(I agree with liorean.)
> 1. Is regexp callability worth adding in ES4?
IMO, no it isn't. Although I do enjoy the convenience of things like
array.filter(/regex/) (which works in Firefox today), outside of array
iteration methods it typically just saves five characters and is not
behavior most people would expect. If I want to be able to pass regexes
around as functions and use call and apply on them in the cases where it is
helpful, I can implement this functionality myself (my custom methods would
likely ignore the context argument ... e.g.
RegExp.prototype.call=function(context,str){return this.exec(str);}; ).
> 2. If yes to 1, do we really need .call and .apply?
I don't think it's needed, but the symmetry with real functions seems
natural to me (but only if callability were to be preserved, which as noted
above is not something I'd argue for).
As for whether test or exec should be the method used if callability is
preserved, I think test is what would be desired in far more cases. However,
I have grown used to the idea of exec being the default method (since the
functionality of all regex and regex-using string methods can be reproduced
using exec), and the null and array values returned by exec cast nicely to
booleans anyway. So, I don't really care either way.
More information about the Es4-discuss
mailing list