无法访问在一个JS文件中定义的全局变量

时间:2014-05-24 10:02:56

标签: javascript jquery

我有两个JS文件 - first.jssecond.js

first.js包含一些常见的库函数,而second.js是使用它们的实际代码。

first.js的结构是这样的 -

var globalObj = {};

(function($){

  globalObj.data = {};

  globalObj.func1 = function(){

  };

  globalObj.func2 = function(){

  };
  //......
})(jQuery)

我的second.js看起来像这样 -

(function($){

 function init(){
     console.log(globalObj);
     var val1 = globalObj.func1();
     globalObj.func3 = function(){

     };
 }

 $(document).ready(function(){
     init();
 });
})(jQuery)

如上所示,在second.js中,我想使用first.js中定义的函数,并为globalObj添加更多函数。

我的问题是 -

  1. 我在宣布first.js的{​​{1}}中收到错误 - globalObj.data

  2. Uncaught TypeError: Cannot set property 'data' of undefined的{​​{1}}内console.log(globalObj),我得到一个空对象,而我希望它显示init()中定义的内容second.js

  3. 关键是,在globalObj中,我想使用和修改在first.js内声明和定义的相同全局变量。我怎样才能做到这一点?另外,请注意,我必须使用两个JS文件中存在的匿名自执行功能块。请帮忙。

    second.js之前调用

    first.js

0 个答案:

没有答案