Javascript 从另一个JS文件导出方法

Javascript 从另一个JS文件导出方法,javascript,Javascript,我无法从另一个JavaScript文件导入方法 我尝试从文件中导出单个方法或类,但仍然不起作用。基本上,我正在尝试学习摩卡,所以我尝试创建库,以便在摩卡中测试方法,但我的导出和导入似乎不起作用。我在Chrome浏览器中运行脚本 文件:myTest.js function myTestClass(){ this.myTestText = "Welcome to myTestClass!"; this.mySum = function(a, b) { return a

我无法从另一个JavaScript文件导入方法

我尝试从文件中导出单个方法或类,但仍然不起作用。基本上,我正在尝试学习摩卡,所以我尝试创建库,以便在摩卡中测试方法,但我的导出和导入似乎不起作用。我在Chrome浏览器中运行脚本

文件:myTest.js

function myTestClass(){
    this.myTestText = "Welcome to myTestClass!";

    this.mySum = function(a, b) {
      return a + b;
    }

    this.mySubtraction = function(a,b) {
      return a - b;
    }

    this.myMultiply = function(a, b) {
      return a * b;
    }
};

export default {myTestClass};
文件:test.js

import myTestClass from 'myTest.js';
console.log("enter test.js file");
console.log("test.js finished importing myTest.js file");
文件:index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset=utf-8">
    <title>Mocha Tests</title>

    <link href="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.css" rel="stylesheet" />   

  </head>
  <body>
    <div id="mocha"></id>
    <div id="messages"></div>

<script src="https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/4.2.0/chai.js"></script>   
    <script type="module" class="mocha-init">
        mocha.setup('bdd');
    </script>

    <script src="test.js"></script>
    <script type="module"> 
        mocha.run();
    </script>

  </body>
</html>


您需要使用以“/”、“/”或“./”

test.js

import myTestClass from './myTest.js';

这还取决于您是在前端还是在节点中导入/导出。据我所知,节点没有可用的导入/导出,因此您需要module.exports/require

出口:

function myTestClass(){
    this.myTestText = "Welcome to myTestClass!";

    this.mySum = function(a, b) {
      return a + b;
    }

    this.mySubtraction = function(a,b) {
      return a - b;
    }

    this.myMultiply = function(a, b) {
      return a * b;
    }
};

export default myTestClass;
进口:

import myTestClass from './myTest.js'; // path to file that contains myTestClass

console.log("enter test.js file");
console.log("test.js finished importing myTest.js file");

请您澄清一下您所说的“不属于我的窗口。alert()函数是从该窗口调用的”是什么意思?旁注:请不要再使用
alert
。使用
console.log
,它可以向您显示您试图了解的实际情况,而不是隐藏您试图调试的几乎所有内容的强制字符串强制。还要注意,
import
必须位于文件的顶部。您不能将任何内容置于导入之上:这样做会使浏览器将该代码视为坏JS而拒绝,并且不会运行它。@JossClassey我使用window.alert()调用来检查执行停止的位置。因此,它在导入调用时停止。如果我在test.js文件中注释掉导入调用,那么所有的window.alert()调用都会被调用。@Mike'Pomax'Kamermans谢谢。我将改为使用console.log并将导入调用移到文件顶部。我改为使用您的脚本并在Chrome浏览器中运行该脚本,但仍然不起作用。所以我通过按下Ctrl+Shift+J来启动Chrome控制台,然后我得到一个错误,说“不能在模块外使用import语句”。所以我将脚本改为您的建议,使用“module.exports”,然后使用“require()”,但是我得到不同的错误,说“require()”未定义。Google search建议我可以引用“require.js”文件,但还没有尝试过。@Phil看一下,谢谢,我更新了路径,但仍然不起作用。请参考我下面对Matt Aft的回复。