提问人:MikeiLL 提问时间:9/15/2021 更新时间:9/15/2021 访问量:35
两个 jQuery 块之间的作用域
Scope between two jQuery blocks
问:
有一个老问题看起来很相似,我想这是这个问题的相当基本的解决方案。
我有一些代码,我想将它们分成两个不同的文件(希望无需设置 Webpack、Parcel 或其他模块化系统。
我希望jQuery在每个文件中都可用,因此将每个文件都包装在一个闭包中。jQuery(($) => {});
但是,当我用要实例化的类包装它时,另一个闭包中的代码无法再访问它:
文件一(首先加载)。
jQuery(($) => {
class someClass {
constructor(){
this.hello = $("#hello").html();
}
}
});
文件二
jQuery(($) => {
let some_instance = someClass; # is not defined
});
我想也许我需要将第一个jQuery块分配给一个并将其绑定到第二个,但还没有弄清楚如何。const
答:
2赞
CertainPerformance
9/15/2021
#1
虽然您可以将第一个脚本中的类分配给窗口
jQuery(($) => {
window.someClass = class someClass {
constructor(){
this.hello = $("#hello").html();
}
}
});
这是不规则的,需要全局污染,而且有点奇怪 - 对于专业的东西,如果可能的话,我真的建议使用 Webpack(或其他一些模块打包器)来代替。这将使拆分较小的可维护模块变得更加容易,并且如果需要,可以很容易地缩小/转译。
另请注意,您需要使用和调用类来创建实例。new
()
const someInstance = new someClass();
(也许按照 JS 惯例大写)SomeClass
评论