如何使用jQuery getScript使用在不同JS文件中声明的函数?

时间:2015-02-13 12:12:51

标签: javascript jquery include getscript

我有两个JS文件。一个叫common.js,它使用$ .getScript包含我的js代码的其他文件。部分内容如下:

jQuery.getScript(js_path + "table.js", function(){
  generateTable(chartData, dataTypes);
});

此文件(common.js)还包含函数比较(a,b)。

现在,第二个(table.js)声明了使用第一个文件中的compare函数的不同函数。像这样:

function someName() {
  var a = 2, 
      b = 5;
  var test = compare(a, b);
  return test;
}

当我运行代码时,它给了我:

未捕获的ReferenceError:未定义比较

如何使用第一个文件中的功能。

3 个答案:

答案 0 :(得分:0)

jQuery.getScript首先从服务器获取JS文件,然后执行它。如果你想使用全局函数(看起来像),你需要注意以下几点:

  • 您的compare函数必须在执行table.js文件之前声明。

  • 必须在compare的全局命名空间中声明table.js函数。

很抱歉,但没有更多信息,这就是你能得到的。

如果是您的主文件,请执行以下操作:

(function() {

   function compare(){...}

}());

然后,compare函数未在全局命名空间中声明。

答案 1 :(得分:-1)

你检查了进口的顺序吗?使用'compare'方法的文件应该是第一个。它应该解决问题。

答案 2 :(得分:-1)

我建议如果只是为了分离代码而跳过getScript。

<script src="common.js"></script>
<script src="table.js"></script>
<script src="app.js"></script>

在常见功能共同使用的情况下,您的表格会进入表格。这样您就可以获得正确的订购。这也清除了循环依赖关系,人们可能会看到一个提示,如果表依赖于依赖于表的常见,除了将“常见”部分提取到某种形式的“app”之外。