一个html文件中的多个相互依赖的javascript文件

时间:2012-06-13 21:59:40

标签: javascript html dependency-management

我有两个javascript文件(file1,file2)。 File1使用file2中定义的类。我可以通过以下方式从html文件引用这些文件:

<script type="text/javascript" src="file1.js"></script>
<script type="text/javascript" src="file2.js"></script>

这是否允许file1依赖于file2中定义的类? 如果不是什么插件允许这种依赖?

2 个答案:

答案 0 :(得分:0)

它与您使用它们的方式有关。一种简化的方法。

情景1:

script1.js

function primary()
{
    secondary();
}

script2.js

function secondary()
{
    alert("hi primary");
}

的test.html

<html>
<head>
<script src=script1.js></script>
<script src=script2.js></script>
</head>
<body>
</body>
</html>

它有效(你已经知道了)

情景2:

script1.js

secondary();

script2.js和test.html如上所述

它不起作用(js错误)

场景3:

script1.js

secondary();

script2.js保持不变

的test.html

<html>
<head>
<script src=script1.js defer></script>
<script src=script2.js></script>
</head>
<body>
</body>
</html>

有效。

这是你要找的吗?

答案 1 :(得分:0)

概述:

使用Jquery使用以下命令动态加载JS:

$.getScript("file1.js",function(){

    alert("File1.js is loaded");
}

面向对象JS和动态js加载的示例。

File1.js as:

File1 = function(){
}
File1.prototype=
{
    constructor:File1,
    primary:function()
    {
        if (File2 == "undefined")
        {
           $.getScript("file2.js",function()
           {
              file2 = new File2();
              file2.secondary();
           });
        }
    }
}

File2.js As:

File2 = function(){
}
File2.prototype=
{
  constructor:File2,
  secondary:function()
  {
    if (File1 == "undefined")
    {
      $.getScript("file1.js",functiom()
      {
         file1 = new File1();
         file1.primary();
      });
    }
  }
}

这应该让你很好地了解JS的动态加载,以及JS面向对象的概念。