代码之家  ›  专栏  ›  技术社区  ›  MikeiLL

两个jQuery块之间的作用域

  •  0
  • MikeiLL  · 技术社区  · 3 年前

    有一个 old question

    我有一些代码,我想分为两个不同的文件(希望没有设置网页包,包裹或其他模块化系统。)

    我希望jQuery在每个文件中都可用,所以我将每个文件包装在一个 jQuery(($) => {}); 关闭。

    但是,当我用我想要实例化的类包装该闭包时,另一个闭包中的代码将无法再访问该闭包:

    文件一(先加载)。

    jQuery(($) => {
      class someClass {
        constructor(){
          this.hello = $("#hello").html();
        }
      }
    });
    

    jQuery(($) => {
      let some_instance = someClass; # is not defined
    });
    

    我想也许我需要将第一个jQuery块分配给 const 并将其绑定到第二个,但还不知道如何绑定。

    1 回复  |  直到 3 年前
        1
  •  2
  •   CertainPerformance    3 年前

    jQuery(($) => {
      window.someClass = class someClass {
        constructor(){
          this.hello = $("#hello").html();
        }
      }
    });
    

    这是不规则的,需要全球性的污染,而且有点奇怪——对于一些专业人士来说,如果可能的话,我真的建议使用Webpack(或其他模块绑定器)。它将使分离更小的可维护模块变得更加容易,并且如果需要,将允许简化/透明。

    new () 调用类以创建实例。

    const someInstance = new someClass();
    

    SomeClass