如何从一个js文件调用函数到另一个

How to call function from one js file to another

我在 HTML 中定义了一个属于模块 type.I 的函数,需要从同一 HTML 文件中包含的另一个 js 文件调用该函数。当我从 js 文件调用函数时,它被称为引用错误。

这是我 HTML 文件中的内容 :


<script src="../src/viewer.js"></script>
<script type="module" src="../pravintest/player.js"></script>

viewer.js 文件中,我有一段代码,我在其中调用函数 crossdatacheck(param),它位于 player.js.

这是我的 player.js 文件:

 import * as THREE from './threejs/build/three.module.js';
        import { GUI } from './threejs/examples/jsm/libs/dat.gui.module.js';
        import { OrbitControls } from './threejs/examples/jsm/controls/OrbitControls.js';
        import { NRRDLoader } from './threejs/examples/jsm/loaders/NRRDLoader.js';
        import { VolumeRenderShader1 } from './threejs/examples/jsm/shaders/VolumeShader.js';
        import { WEBGL } from './threejs/examples/jsm/WebGL.js';


        var renderer,
            scene,
            camera,
            controls,
            material,
            volconfig,
            cmtextures;

         function crossdatacheck(data) {
        console.log(data);
         }

我想从 viewer.js 文件调用这个函数。

当我从 viewer.js 调用函数时出现错误 -> 引用错误 : crossdatacheck 函数未在 [=35= 中定义] 任何人都可以向我建议我该怎么做吗?

模块有自己的作用域和顶级 var 语句,function 声明不会创建全局变量。 (这很好,全局变量有问题)。

处理这个:

  1. export你想在模块外使用的变量
  2. 更改加载 viewer.js<script>,使其作为模块加载
  3. 去掉加载player.js
  4. <script>
  5. player.js 中导入要在 viewer.js[= 中使用 import 语句的变量30=]