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

时间:2011-12-30 03:29:00

标签: javascript jquery scope

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

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

内执行/加载

在某个事件中,第一个文件中定义的函数A尝试调用另一个文件中定义的函数B.但是,这失败了,我得到一个错误,即函数B没有被定义。

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

为什么?

1 个答案:

答案 0 :(得分:4)

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

编辑:当我说“以其他方式制造全球化”时,我的意思是这样的:

window.something = "something";

即使您的就绪函数中存在这行代码,也会创建一个全局变量something