javascript - 未定义 jquery 函数 - 范围问题?

标签 javascript jquery scope

我有一个可能很简单的问题需要帮助。

我有两个 js 文件,我通过 html 中的标签加载到页面上。这两个文件中的所有代码都在 $(document).ready();

中执行/加载

在某个特定事件中,第一个文件中定义的函数 A 尝试调用另一个文件中定义的函数 B。但是,这失败了,我收到一个错误,指出函数 B 未定义。

我注意到,如果我在 $(document).ready() 之外采用函数 B 的定义,则函数 A 能够调用函数 B - 它在范围内。

为什么?

最佳答案

这是一个范围问题。函数内定义的所有内容都只能在该函数内访问,除非以其他方式全局化。当您将函数移到就绪函数之外时,它会变成全局函数,从而可以在全局范围内访问它。

编辑:当我说“以其他方式实现全局化”时,我的意思是这样的:

window.something = "something";

这将创建一个全局变量something,即使这行代码存在于您准备好的函数中也是如此。

关于javascript - 未定义 jquery 函数 - 范围问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8675883/

相关文章:

javascript - 创建新的 div onClick(如果尚未创建)

javascript - setInterval 始终将 deltaSec 的初始值显示为 "undefined"

javascript - 使用 Drupal_add_js/Jquery 评估 Node 时未定义

jquery - css 在悬停时运行关键帧并单击

javascript - 谷歌地图错误标记获取事件属性

c# - 混合模式调试

javascript - 抛出 undefined variable

javascript - Bootstrap 3 工具提示不起作用

javascript - 简单的javascript原型(prototype)问题

jquery在Chrome上获取输入文件值