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

gdb*_*dbj 5 javascript jquery scope

我有一个很简单的问题需要帮助.

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

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

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

为什么?

Jam*_*gne 4

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

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

window.something = "something";
Run Code Online (Sandbox Code Playgroud)

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