Is wrapping new within the constructor good or bad?
- by Timothy
I watched John Resig's Best Practices in JavaScript Library Design presentation; one slide suggested "tweaking" the object constructor so it instantiates itself.
function jQuery(str, con) {
if (window === this) {
return new jQuery(str, con);
}
// ...
}
With that, new jQuery("#foo") becomes jQuery("# foo").
I thought it was rather interesting, but I haven't written a constructor like that in my own code.
A little later I read a post here on SO. (Sorry, I don't remember which or I'd supply a link. I will update the question if I can find it again.) One of the comments said it was bad practice to hide new from the programmer like that, but didn't go into details.
My question is, it the above generally considered good, bad, or indifferent, and why?