javascript - 为什么我无法从另一个 .js 文件访问一个 .js 文件中定义的 JavaScript 函数?

标签 javascript html

我是 JavaScript 的新手,我正在按照教程试验全局作用域。

在本教程中我有 3 个文件:

1) index.htm:

<html>
    <head></head>

    <body>
        <h1>HELLO WORLD !!!</h1>

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

    </body>
</html>

如您所见,我包含了 2 个 JavaScript 文件。

2) app.js:

var person = 'Torny';   // When I call the logPerson() function this line override the person variable value into the global stack

//console.log(person);

logPerson();

3) utility.js 其中定义了 logPerson() 函数,定义在 app.js 文件中:

var person = 'Steve';

function logPerson() {
    console.log(person);
}

好的,所以我预计会有以下行为:

app.js 文件中设置字符串 'Tony' 作为 person 变量的值,调用 logPerson() 函数在 utility.js 文件中声明,然后在控制台中打印“Tony”。

问题是,当我尝试在 FireFox 中打开 index.htm 文件时,我进入了 FireBug 控制台,而不是“Tony”值,我得到了这个错误消息:

ReferenceError: logPerson is not defined

所以它似乎从 app.js 文件中看不到定义到 utility.jslogPerson() 函数strong> 文件并导入。

为什么?我错过了什么?怎么了?

最佳答案

在 javascript 中,文件的顺序很重要。您需要先加载定义您的功能的脚本,然后才能使用它。切换 2 <script>标签

<body>
    <h1>HELLO WORLD !!!</h1>

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

</body>
</html>

关于javascript - 为什么我无法从另一个 .js 文件访问一个 .js 文件中定义的 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33417892/

相关文章:

javascript - 使用 JS/jQuery 从 JsonArray 中提取数据

html - JSPM 包不加载 HTML 文件

html - 无法使用 Orchard CMS 从 CSS 加载图像

javascript - 在外部 iframe 中设置输入字段的值

html - 我正在尝试使用 css 从移动优先方法拉伸(stretch)图像

html - 带有复选框 hack 的下拉菜单不起作用

css - HTML5 和 CSS 标题横幅图像和文本对齐

javascript - Cheerio:需要将 $ 与元素一起传递吗?

javascript - ES6/终极版 : returning a function to remove event listener

javascript - 为什么我的 VowelCount 函数没有返回正确的解决方案?