如何在多个文件中组织JS函数

时间:2012-02-16 23:59:50

标签: javascript

来自经典的OOP背景我最近开始学习更多有关JavaScript的知识。但是,有一点我无法弄清楚:

在经典的OOP语言中,您通常会为每个类创建一个单独的文件,因为这样可以更轻松地维护代码。 JS没有真正的类,据我所知,也没有一种真正直接的方法来从一个文件中包含另一个JS文件。但是,当您在大型JS项目上与团队合作时,您可能希望将项目拆分为多个文件。这是怎么做到的?你在这些文件中放了什么,以及如何正确加载它们?

4 个答案:

答案 0 :(得分:10)

我喜欢你的问题。我编写的JavaScript非常面向对象,并将我的对象构造函数保存在自己的文件中。我将所有.js文件放入一个目录,我可以按照我想要的方式组织到子目录中。然后我运行一个“make”脚本。以下是我写的Bash脚本。我在Linux机器上工作,因此对于任何在Linux工作的人来说,Bash脚本编写对我来说是一个自然的解决方案。

#!/bin/bash

echo '' > temp0.js 
find ./bin/external -name \*.js -exec cat {} >> temp0.js \;

echo ''> temp1.js
echo '(function(){' > temp1.js
find ./bin/prop -name \*.js -exec cat {} >> temp1.js \;
echo '})();' >> temp1.js

cat temp0.js temp1.js > script.js
rm temp1.js temp0.js

如果这个bash脚本是业余的,请原谅我。我很乐意承认在bash脚本中,我只是将任何有效的东西混在一起,但我喜欢我的JavaScript要干净整洁,面向对象。

这个bash脚本进入一个名为“bin”的目录旁边的目录,其中包含所有的javascript .js文件。在那里,子目录“external”包含各种借用的脚本,如JQuery。我将自己的.js脚本放在上面示例中名为“prop”的文件夹中。 bash脚本获取所有这些脚本并连接它们。它还将我自己的prop文件包装在一个匿名函数中,为它们提供一个私有命名空间(sortof)。

我想很清楚这不是你想要的 - Java - 但我认为这种选择是我们在JavaScript中必须要做的。

答案 1 :(得分:4)

JavaScripts原型模型非常OOP,您可以随意在尽可能多的文件中分解代码。加载依赖项有几种不同的方法,RequireJS是一种受欢迎的方法。

答案 2 :(得分:2)

您必须以对项目有意义的方式对代码进行细分。

至于如何包含脚本,那就更难了。最简单的方法是只包含多个JavaScript文件,可以从HTML(<script src="..."></script><script src="..."></script>)顺序调用,也可以使用依赖项管理器或加载脚本(如YepnopeRequireJS ...

但是,如果您只想从HTML中包含一个脚本,则可以连接文件(使用带有Ant或类似内容的构建脚本)或破解Javascript以包含此处所述的其他脚本:How do I include a JavaScript file in another JavaScript file?

答案 3 :(得分:1)

您可以使用您想要的任何逻辑方法对文件进行分组。通常它是由功能完成的 - 这个文件为徽标设置动画,此文件使主页显示幻灯片功能,此文件处理导航栏下拉列表。我想你通常会让你的团队分成一个类似的组织,每个人都对一个特定的功能负责。除此之外,源代码管理管理就像任何其他项目一样,用户在处理代码时必须检查或提交代码。