为了保持组织性,我有几个 javascript 文件,尽管它们(最终)都被缩小到一起形成一个最终的 javascript 文件。
每个文件的内容都包含在:
$(document).ready(function(){
//some javascript here
});
似乎如果我在单独的文件中(在代码之间)有东西,它们就无法相互访问。这是范围问题吗?我能做什么?
例如,在一个文件中,我有一堆代码用于根据通过 ajax 接收的数据创建表。然而,文件的一半只是用于如何根据数据的类型等显示数据的模板。我希望将模板放在自己的文件中。
我知道这只是一个“偏好”问题,我可以将所有内容都放在一个文件中。
但我希望从中学习,甚至能够按照“我的”方式进行。
最佳答案
Javascript 使用函数作用域,因此函数内部的局部变量对外部不可见。这就是为什么您的代码无法访问其他作用域的代码。
理想的解决方案是创建一个命名空间。
var NS = {};
(function(){
function privateFunction() { ... }
NS.publicFunction = function(){ ... }
})();
$(document).ready(function(){
NS.publicFunction();
});
这也是一个有用的模式,因为它允许您区分私有(private)元素和公共(public)元素。
关于jquery - $(document).ready() 内的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4363113/