Javascript 无法访问在一个JS文件中定义的全局变量
我有两个JS文件-Javascript 无法访问在一个JS文件中定义的全局变量,javascript,jquery,Javascript,Jquery,我有两个JS文件-first.JS和second.JS first.js包含一些常用的库函数,而second.js是使用它们的实际代码 first.js的结构如下- var globalObj = {}; (function($){ globalObj.data = {}; globalObj.func1 = function(){ }; globalObj.func2 = function(){ }; //...... })(jQuery) (functi
first.JS
和second.JS
first.js
包含一些常用的库函数,而second.js
是使用它们的实际代码
first.js
的结构如下-
var globalObj = {};
(function($){
globalObj.data = {};
globalObj.func1 = function(){
};
globalObj.func2 = function(){
};
//......
})(jQuery)
(function($){
function init(){
console.log(globalObj);
var val1 = globalObj.func1();
globalObj.func3 = function(){
};
}
$(document).ready(function(){
init();
});
})(jQuery)
我的second.js
看起来像这样-
var globalObj = {};
(function($){
globalObj.data = {};
globalObj.func1 = function(){
};
globalObj.func2 = function(){
};
//......
})(jQuery)
(function($){
function init(){
console.log(globalObj);
var val1 = globalObj.func1();
globalObj.func3 = function(){
};
}
$(document).ready(function(){
init();
});
})(jQuery)
如上所述,在second.js
中,我想使用first.js
中定义的函数,并向globalObj
添加更多函数
我的问题是-
first.js
中发现一个错误,其中声明了globalObj.data
-Uncaught TypeError:无法设置未定义的属性“data”
second.js
的console.log(globalObj)
内部init()
中,我得到一个空对象,同时我希望它显示globalObj
的内容,如first.js
中所定义second.js
中,我想使用和修改在first.js
中声明和定义的相同全局变量。我该怎么做?另外,请注意,我必须使用两个JS文件中的匿名自执行功能块。请帮忙
在调用
second.js
之前先调用first.js
尝试将console.log('1./2.file')
放在包含的每个文件的开头。它们的顺序正确吗?@2astalavista,是的,它们的顺序正确,first.js
在second.js
之前被调用。好的,但是你的例子没有包含任何X.data=Y
部分,这会导致错误(在第二个.js中)。你一定在做问题中没有显示的事情,这就是问题的根源。我建议删除second.js,然后开始删除代码部分,直到first.js开始工作,或者直到剩下的就是问题中显示的部分(应该可以工作)。@MrCode,你是对的。在first.js的匿名范围内有var globalObj=globalObj | |{}