需要关于处理大型javascript文件的建议吗

需要关于处理大型javascript文件的建议吗,javascript,Javascript,我有大约2000行javascript代码用于我的应用程序。其中很多是用户交互/jQuery。别担心,一切正常:) 但是跟踪代码库变得越来越困难。所以我把这个文件分成五个文件 我认为,如果我加载所有文件,它们都驻留在内存中,并且可以相互通信。但它看起来不像。因为,在文件A中,我有var currentPage=getURLvar('slpage')

我有大约2000行javascript代码用于我的应用程序。其中很多是用户交互/jQuery。别担心,一切正常:)

但是跟踪代码库变得越来越困难。所以我把这个文件分成五个文件

我认为,如果我加载所有文件,它们都驻留在内存中,并且可以相互通信。但它看起来不像。因为,在文件A中,我有
var currentPage=getURLvar('slpage')if(currentPage=='someName')

但是文件B无法识别变量currentPage

另外,我在文件C中有som通用脚本,文件A和B可以使用这些脚本。但我想这对卡尔·莱瑟来说是不可能的

任何建议都将不胜感激

更新

我的javascript开始如下:

// FILE A
jQuery(document).ready(function() {

  var currentPage = getURLvar('slpage');

  if ( (currentPage == 'Aa') || (currentPage == 'Bb') ) { 
    init_AA();
  } 
  else if ( (currentPage == 'Cc') || (currentPage == 'Dd') ) {
    init_BB();    
  } else if ( (currentPage == 'Ee') || (currentPage == 'Ff') ) {
    init_CC();    
  }
  (...)

// FILE B
  function init_AA()
  { 
    (...)
  }

  function getURLvar(name)
  {
     //Gets the URL and returns the value of specified paramter.
  }

您是对的,可以访问其他文件中的脚本部分。你遇到的问题听起来像是范围界定的问题

如果您的变量位于全局名称空间中(这不是一个好主意),那么您可以像尝试过的那样直接访问它

或者,如果将变量的作用域限定在一个方法中,那么它也只能在该方法中访问

为了公开所需的变量,我建议为代码创建一个公共名称空间,并将单独的Javascript限定到相关名称空间中

以下是一些参考资料以获取更多信息:

更新:

根据您发布的代码,您可以简单地将变量declaration移到anonymouse函数的范围之外

 var currentPage;

 jQuery(document).ready(function() {

 currentPage = getURLvar('slpage');
 ...

您是对的,可以访问其他文件中的脚本部分。你遇到的问题听起来像是范围界定的问题

如果您的变量位于全局名称空间中(这不是一个好主意),那么您可以像尝试过的那样直接访问它

或者,如果将变量的作用域限定在一个方法中,那么它也只能在该方法中访问

为了公开所需的变量,我建议为代码创建一个公共名称空间,并将单独的Javascript限定到相关名称空间中

以下是一些参考资料以获取更多信息:

更新:

根据您发布的代码,您可以简单地将变量declaration移到anonymouse函数的范围之外

 var currentPage;

 jQuery(document).ready(function() {

 currentPage = getURLvar('slpage');
 ...

“currentPage”变量“live”在哪个范围内?在投入生产时,如何将它们最小化到一个文件中?@Jan-你所说的范围是什么意思@亚历克斯-当我投入生产时,我会这样做。但在我使用它的同时,当我为网站的不同部分使用不同的js文件时,它更易于管理。“currentPage”变量“活动”在什么范围内?在投入生产时,如何将它们最小化到一个文件中?@Jan-你所说的范围是什么@亚历克斯-当我投入生产时,我会这样做。但是,当我使用它时,当我为网站的不同部分使用不同的js文件时,它更易于管理。。。我想知道是否有这样的事情存在。我不知道你所说的作用域是什么意思。作用域只是指代码所具有的作用域。例如,在函数顶部声明变量意味着该函数是该变量可以使用的范围。在此函数之外,该变量不存在。我们称之为具有作用域的变量(作用域为函数)。真正要说的是“从哪里可以看到这个变量”。在您的示例中,似乎变量只能在定义它的函数中看到。其他函数没有这个作用域(无法看到变量),因为它被锁定了。请参阅上面的更新。这会让你马上站起来跑步。哼。。。我想知道是否有这样的事情存在。我不知道你所说的作用域是什么意思。作用域只是指代码所具有的作用域。例如,在函数顶部声明变量意味着该函数是该变量可以使用的范围。在此函数之外,该变量不存在。我们称之为具有作用域的变量(作用域为函数)。真正要说的是“从哪里可以看到这个变量”。在您的示例中,似乎变量只能在定义它的函数中看到。其他函数没有这个作用域(无法看到变量),因为它被锁定了。请参阅上面的更新。这会让你马上站起来跑步。