gpt4 book ai didi

javascript - 在构造函数中包装 new 是好是坏?

转载 作者:数据小太阳 更新时间:2023-10-29 05:08:58 25 4
gpt4 key购买 nike

我看了 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 是不好的做法程序员喜欢,但没有详细说明。

我的问题是,以上通常被认为是好、坏还是无所谓,为什么?

最佳答案

当人们忘记在“类”函数前使用 new 运算符时,这是一种防御技术。
逻辑是,如果在没有new 的情况下调用函数,那么全局作用域仍将是当前作用域(而不是新实例),因此我们只需使用 调用同一个函数新的 运算符。

但如果您问我,正确的做法是抛出一个错误并让开发人员知道它犯了一个错误,而不是仅仅“接受”它。

但是嘿,我猜这是根据 jQuery 的口头禅:
“不是让用户编写高质量的代码,而是让/强制他们编写不合逻辑和无效的代码”。

关于javascript - 在构造函数中包装 new 是好是坏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com