我看了John Resig的Best Practices in JavaScript Library Design介紹;一張幻燈片建議「調整」對象構造函數,以便它自己實例化。在構造函數中包裝是好還是壞?
function jQuery(str, con) {
if (window === this) {
return new jQuery(str, con);
}
// ...
}
因此,new jQuery("#foo")
變成jQuery("#foo")
。
我認爲這很有趣,但我沒有在我自己的代碼中寫過這樣的構造函數。
稍後我在SO上讀了一篇文章。 (對不起,我不記得是哪一個或我提供了一個鏈接,如果我能再次找到它,我會更新這個問題。)其中一個評論說,這樣做是不好的做法,從程序員那裏隱藏new
,但是沒有沒有詳細說明。
我的問題是,它通常被認爲是好的,壞的或無所謂的,爲什麼?