什么时候命名空间适合JavaScript?

时间:2013-09-22 19:51:15

标签: javascript jquery namespaces

对于我正在制作的新页面,我想确保尽我所能“正确”完成所有事情。我想知道最佳做法是什么。每页一个JS文件或一个包含所有内容的文件。我发现this question帮助了一些人,但提出了更多问题。

我几乎只使用JS来做三件事:

  1. 按钮点击(显示/隐藏面板等)转换内容,
  2. 预验证表格,
  3. AJAX致电。
  4. 当我将我的用例与命名空间方法进行比较时,它似乎有点过分;我真的不明白为什么我需要设置这样一个复杂的框架来使用JavaScript。这让我有两个问题:

    1. 对于我正在做的事情,我应该每页使用一个JS文件,还是使用Irish的命名空间技术和单个脚本导入?
    2. 使用JS的人到底需要这么多结构?

2 个答案:

答案 0 :(得分:1)

如果您的页面没有任何共同点,您可以为每个页面使用脚本文件。如果您的页面之间有很多共同的逻辑,那么您可能希望将这些常用位放入自己的文件中,并将其包含在您需要的任何位置。

至于为什么需要这么多结构,人们用JavaScript制作越来越复杂的东西。例如,考虑使用Gmail。我想在那里有相当多的代码,没有太多的结构,很难快速维护。

答案 1 :(得分:1)

好的,那个页面是从2009年开始 - 从那时起,Javascript在网络上的使用方式发生了很大的变化。

现在大多数网页都包含来自不同来源(和不同开发人员)的多个第三方Javascript文件。将您的代码封装在自定义命名空间中以防止您的代码被使用相同变量名称的其他代码覆盖是很有意义的,并且它不会比以下更难:

Mynamespace= {};
Mynamespace.foo = "bar";
Mynamespace.foobar = function(){
    //function body
};

编写结构化Javascript不是为了增加复杂性。编写结构化Javascript允许您将行为和职责封装到可重用的代码部分中,这些部分更易于测试,维护,重用和扩展。

您甚至不需要判断单文件/多文件。您可以使用像require.js这样的框架,将所有单独的代码文件编译成一个文件进行部署。

现在正式使用JavaScript a first-class language in Visual Studio它用于编写Web服务器,模板系统甚至3D引擎。

欢迎来到2013; - )

_Pez