Javascript 无法访问在一个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

我有两个JS文件-
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 | |{}