Hay una vieja pregunta que parece similar, e imagino que esta es una solución bastante elemental para este problema.
Tengo un código que quiero separar en dos archivos diferentes (con suerte, sin configurar Webpack, Parcel o algún otro sistema modular).
Me gustaría que jQuery esté disponible en cada archivo, así que envolví cada uno en jQuery(($) => {}); cierre.
Sin embargo, cuando envuelvo el que tiene la clase que quiero instanciar, ya no es accesible para el código en el otro cierre:
Archivo uno (se carga primero).
jQuery(($) => { class someClass { constructor(){ this.hello = $("#hello").html(); } } });archivo dos
jQuery(($) => { let some_instance = someClass; # is not defined }); Creo que tal vez necesito asignar el primer bloque jQuery a una const y vincularlo al segundo, pero aún no he descubierto cómo.
Si bien puede asignar la clase en el primer script a la ventana
jQuery(($) => { window.someClass = class someClass { constructor(){ this.hello = $("#hello").html(); } } });Esto es irregular, requiere contaminación global y es algo extraño: para algo profesional, realmente recomendaría usar Webpack (o algún otro paquete de módulos) en su lugar, si es posible. Hará que la división de módulos más pequeños que se pueden mantener sea mucho más fácil y permitirá una fácil minimización/transpilación si se desea.
También tenga en cuenta que necesita usar new y () para invocar una clase para crear una instancia.
const someInstance = new someClass(); (quizás capitalizar SomeClass según la convención JS)