我有一个可能很简单的问题需要帮助。
我有两个 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/