Ho visto la presentazione di John Resig Best Practices in JavaScript Library Design; una diapositiva suggeriva di "modificare" il costruttore di oggetti in modo che si istanziasse da solo.Il wrapping è nuovo o buono all'interno del costruttore?
function jQuery(str, con) {
if (window === this) {
return new jQuery(str, con);
}
// ...
}
Con questo, new jQuery("#foo")
diventa jQuery("#foo")
.
Ho pensato che fosse piuttosto interessante, ma non ho scritto un costruttore come quello nel mio codice.
Poco dopo ho letto un post qui su SO. (Scusate, non ricordo quale o fornirei un collegamento. Aggiornerò la domanda se riesco a trovarlo di nuovo.) Uno dei commenti ha detto che era una cattiva pratica nascondere new
dal programmatore in quel modo, ma non entrare nei dettagli
La mia domanda è, quanto sopra generalmente considerato buono, cattivo o indifferente, e perché?