javascript - 如何在不同的JS文件之间访问函数?

标签 javascript html scope

我试图通过使用多个专注于某些特定任务的 javascript 文件来分离应用程序的逻辑。

JS 文件中定义的函数需要在文件本身之间进行访问。

我知道调用函数的顺序很重要,定义“全局”与“本地”范围也很重要。在以下文件中,文件未包装在函数中,因此我认为它们位于全局范围内。

file1.js

function addingToDOM(stuff) {
...  
...
}

file2.js

// call addingToDOM
addingToDOM(someStuff);
function doOtherTHings() {
...
...
}

HTML(文件顺序)

<script src="file1.js"></script>
<script src="file2.js"></script>

错误
addingToDOM is not defined

file2.js来电 file1.js之后file1.js在 HTML 中。
我不明白为什么它没有定义。

最佳答案

您的 JS 文件应该只定义函数并调用同一 JS 文件中的函数。如果要从另一个 JS 文件中调用函数,则需要首先加载该 JS 文件。我会将所有调用代码(有点像其他语言(例如 C)中的“main”函数)放在一个位置,最好放在 html 文档的末尾。毕竟,其他 JS 文件(和标记)已加载。这并不是说您不能从 file2 调用 file1 中的函数,而是它们都应该在代码开始运行之前完全加载。

您的设置应该按原样工作,但请确保调用第一个需要运行的函数,该函数不是在 JS 文件中运行,而是在 HTML 文档的末尾运行。

关于javascript - 如何在不同的JS文件之间访问函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419392/

相关文章:

javascript - z 索引和点击事件

Java 与 JavaScript 变量范围

javascript - 在循环中声明的变量和重新使用的变量会发生什么

php - 在 WordPress 插件中调用 TinyMCE

javascript - slider 卡在第一张幻灯片上

javascript - 将 Canvas 元素绑定(bind)到新元素

javascript - 分解 javascript/jquery 代码以在外部单击时隐藏模态

php - 使用 php jquery 和 ajax 的 html2fpdf - 使用完整的 CSS 导出

javascript - 将字符序列转换为文本字段中的图片(笑脸)?

javascript - Angular 如何以正确的方式从服务设置范围变量?