我观看了约翰·雷西格的JavaScript库设计最佳实践演示文稿;其中一张幻灯片建议“调整”对象构造器,以便它能够自行实例化。
function jQuery(str, con) {
if (window === this) {
return new jQuery(str, con);
}
// ...
}
因此,new jQuery("#foo")
变为 jQuery("#foo")
。
我认为这很有趣,但我自己的代码中没有编写过这样的构造函数。
后来我在这里读到了一篇文章。(抱歉,我不记得是哪篇了,否则我会提供链接。如果我能再次找到它,我将更新问题。)其中一条评论说将 new
隐藏在程序员身后是不好的做法,但没有详细说明原因。
我的问题是,上述内容通常被认为是好的、坏的还是无关紧要的,为什么?