我知道这个问题已经被普遍讨论过,但我的具体情况有所不同。我需要从一个文件中调用另一个文件中的函数,但无法更改另一个文件中的代码。这是一个例子:
文件1.js:
console.log(function1(param1, param2));
file2.js:
function1(param1, param2) { return param1 + param2; }
我可以更改 file1 中的任何内容,但无法更改 file2 中的任何代码。
在发表这篇文章之前,我进行了相当广泛的查找,发现由于全局作用域,我刚才描述的内容在 JavaScript 中是可能的。但在实践中,尝试运行 file2.js 会导致“ReferenceError:function1 未定义”。我在 Java 方面有经验,但在 JavaScript 方面没有经验,所以我不知道如何解决这个问题,也不知道它是否可以解决。我正在使用 Github Codespaces 和 VSCode 来编辑文件。
如果您使用 Node.js,这个答案 如果添加到 file1 的顶部,应该可以解决您的问题。否则,如果您使用 HTML,您可以简单地将 file2 的脚本标记添加到 file1 上方,如下所示:
<script src="file2.js"></script>
<script src="file1.js"></script>