【发布时间】:2017-06-22 14:55:27
【问题描述】:
我有一个项目,其中我将三个单独的 JavaScript 文件(example1.js、example2.js 和 example3.js 让我们调用它们)编写成一个 html 文件 (index.html)。它们之间的这三个 JS 文件负责 API 调用和操作结果。
其中一个 JS 文件,example1.js 指的是位于 example2.js 中的全局变量,因为它们都加载到同一个 html 文档中,所以我认为访问所述变量不会成为问题,而且确实如此在我将文件添加到我的 RoR 应用程序之前工作得很好。由于 Rails,我不得不将 JS/jQuery 代码封装在 $document.ready(function(){} 中
(无论如何我应该理所当然地这样做?)。
这产生的影响是我现在在位于 example2.js 中的 example1.js 引用的全局变量上收到“变量未定义”错误,即使同一文件中的其他代码工作正常.
我回到了远离 RoR 的原始 JS 文件,以防这是 Rails 问题。但是,在我的原始文件中使用 jQuery document.ready 函数封装代码在 Rails 环境之外具有相同的效果。有人可以解释为什么会这样以及可能的解决方案吗?
【问题讨论】:
-
请按照minimal reproducible example提供代码示例。听起来您的范围理解不正确
-
当您将代码包装在一个函数中时,对于“就绪”处理程序,变量是该函数的本地,而不是全局。
-
@Pointy 你能解释一下吗? jsbin.com/puyuyig.thanks
-
@plonknimbuzz 在该代码中,用于“就绪”处理程序的函数不声明任何变量;它是 using 全局变量,这很好。请注意,您没有发布任何实际代码,因此很难准确说出您的问题是什么。
-
@Pointy 我将我的脚本上传到我的 VPS 31.220.58.88/so/js_global 希望你能解释一下。谢谢
标签: javascript jquery