两个 jQuery 块之间的范围
Scope between two jQuery blocks
有一个 old question 看起来很相似,我想这是对这个问题的相当基本的解决方案。
我有一些代码想分成两个不同的文件(希望不要设置 Webpack、Parcel 或其他一些模块化系统。)
我希望 jQuery 在每个文件中可用,因此将每个文件都包装在 jQuery(($) => {});
闭包中。
但是,当我用 class 包装一个我想实例化的闭包时,另一个闭包中的代码不再可以访问它:
文件一(首先加载)。
jQuery(($) => {
class someClass {
constructor(){
this.hello = $("#hello").html();
}
}
});
文件二
jQuery(($) => {
let some_instance = someClass; # is not defined
});
我想也许我需要将第一个 jQuery 块分配给 const
并将其绑定到第二个,但还没有弄清楚如何。
虽然您可以将第一个脚本中的 class 分配给 window
jQuery(($) => {
window.someClass = class someClass {
constructor(){
this.hello = $("#hello").html();
}
}
});
这是不规则的,需要全局污染,而且有点奇怪 - 对于专业人士,我真的建议尽可能使用 Webpack(或其他一些模块捆绑器)。它将使拆分更小的可维护模块变得更加容易,并且如果需要,将允许简单 minification/transpilation。
另请注意,您需要使用 new
和 ()
调用 class 来创建实例。
const someInstance = new someClass();
(也许根据 JS 约定大写 SomeClass
)
有一个 old question 看起来很相似,我想这是对这个问题的相当基本的解决方案。
我有一些代码想分成两个不同的文件(希望不要设置 Webpack、Parcel 或其他一些模块化系统。)
我希望 jQuery 在每个文件中可用,因此将每个文件都包装在 jQuery(($) => {});
闭包中。
但是,当我用 class 包装一个我想实例化的闭包时,另一个闭包中的代码不再可以访问它:
文件一(首先加载)。
jQuery(($) => {
class someClass {
constructor(){
this.hello = $("#hello").html();
}
}
});
文件二
jQuery(($) => {
let some_instance = someClass; # is not defined
});
我想也许我需要将第一个 jQuery 块分配给 const
并将其绑定到第二个,但还没有弄清楚如何。
虽然您可以将第一个脚本中的 class 分配给 window
jQuery(($) => {
window.someClass = class someClass {
constructor(){
this.hello = $("#hello").html();
}
}
});
这是不规则的,需要全局污染,而且有点奇怪 - 对于专业人士,我真的建议尽可能使用 Webpack(或其他一些模块捆绑器)。它将使拆分更小的可维护模块变得更加容易,并且如果需要,将允许简单 minification/transpilation。
另请注意,您需要使用 new
和 ()
调用 class 来创建实例。
const someInstance = new someClass();
(也许根据 JS 约定大写 SomeClass
)