javascript链接

时间:2012-07-05 06:07:13

标签: javascript html html5

我将在html5中使用一些繁重的javascripting构建一个相当复杂的应用程序。 在这里我需要制作一些可以传递的物体。但是因为没有@import foobar.js。

然后我假设如果我的html页面加载脚本,那么所有脚本都可以互相访问?

我读到(here) ajax能够以某种方式从另一个.js文件中加载.js文件。但我不认为这是我需要的?

如果需要,可以进一步了解细节,提前谢谢。

3 个答案:

答案 0 :(得分:2)

在我们的项目中,我们执行以下操作:假设您要调用项目Foo,并在其中安装一个名为Bar的模块,

然后我们要做的是声明一个名为Foo.js的文件,该文件只定义了与Foo命名空间的等价物:

Foo = (function(){
    return {
        };
})();

然后我们创建一个名为Foo.Bar.js的文件,其中包含Bar模块的代码:

Foo.Bar = (function(){
    // var declarations here that should be invisible outside Foo.Bar
var p, q;   
    return {            
        fun1 : function(a, b){
            // Code for fun1 here
        },      
        fun2 : function(c) {
            // Code for fun2 here
        }            
    } // return 
})();

请注意它是一个立即执行的函数,并返回一个被赋值给Foo.Bar的对象。 pq可以使用fun1fun2这样的局部变量,因为它们位于闭包中,但它们在Foo.Bar之外是不可见的/ p>

Foo.Bar中的函数可以是对象的构造函数等等。

现在,在您的HTML中,您可以简单地包含两个文件:

<script type="text/javascript" src="Foo.js"></script>    
<script type="text/javascript" src="Foo.Bar.js"></script>

结果是您可以在主HTML文件的JavaScript中调用Foo.Bar的函数而不会出现任何问题。

答案 1 :(得分:1)

您应该查看模块模式: http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth/

这描述了在javascript中创建模块化代码的替代方法,如何保护代码并在它们之间共享API和数据。

您还应该考虑使用和AMD。 Require.js非常受欢迎,但我倾向于head.js。请记住,这些对于如何在文件中构建代码提出了一些要求,而且个人认为,与页面底部包含的连接和缩小文件相比,我认为这不值得。

答案 2 :(得分:1)

  

然后我假设如果我的html页面加载脚本,那么所有脚本都可以互相访问?