如何从另一个 .js 文件调用 class?

How to call a class from another ,js file?

我对此很陌生,我正在尝试理解 javascript 中的 classes。所以我按照在线教程进行操作,一切似乎都正常,当我尝试像视频中那样做同样的事情时,我现在收到一条错误消息 "Uncaught ReferenceError: MyClassName is not defined"

我有 2 个文件:

class.js

class MyClass {
    constructor(city, state){
        this.city = city;
        this.state = state;

    }
    message(){
        console.log('Hey!');
    }
}

app.js

const myClass = new MyClass();

const btn = document.getElementById('submit');


btn.addEventListener('click', myClass.message());

我得到的错误是“Uncaught ReferenceError: MyClass is not defined”。

我的问题是如何从另一个文件实例化 class?我知道我做错了什么,但我不知道它是什么。

更新: 我的 HTML 文档是这样的。

<body>

    <div class="form-group">
                <button id="submit"  name="submit">Submit</button>
    </div>
    


<script src="app.js"></script>
<script src="class.js"></script>

</body>
</html>

请帮忙,谢谢你的时间。

我认为它给了你这个错误,因为你在 class.js 文件之前导入了 app.js 文件。先尝试导入 class.js 然后它应该可以工作。 示例:

<body>

    <div class="form-group">
                <button id="submit"  name="submit">Submit</button>
    </div>
    

<script src="class.js"></script>
<script src="app.js"></script>

</body>
</html>

由于您 linked app.js 在 class.js 之前 linked,它首先加载,因此您无法访问 MyClass。切换 link app.js 和 class.js 的行,它应该 运行 没有错误。

<!DOCTYPE html>
<html lang="en">
  <body>
    <div class="form-group">
      <button id="submit" name="submit">
        Submit
      </button>
    </div>
  </body>
  <script type="text/javascript" src="class.js"></script>
  <script type="text/javascript" src="app.js"></script>
</html>