JQuery名称空间的最佳实践+通用实用程序功能

Arm*_*nco 7 jquery namespaces utility-method

用于实现JQuery命名空间以托管通用实用程序功能的当前"经验法则"是什么?

我有许多分散在各种文件中的JavaScript实用程序方法,我想将它们整合到一个(或多个)命名空间中.最好的方法是什么?

我目前正在查看两种不同的语法,按优先顺序列出:

  //******************************
  // JQuery Namespace syntax #1
  //******************************
  if (typeof(MyNamespace) === "undefined")
  {
     MyNamespace = {};
  }

  MyNamespace.SayHello = function ()
  {
     alert("Hello from MyNamespace!");
  }

  MyNamespace.AddEmUp = function (a, b)
  {
     return a + b;
  }

  //******************************
  // JQuery Namespace syntax #2
  //******************************
  if (typeof (MyNamespace2) === "undefined")
  {
     MyNamespace2 =
     {
        SayHello: function ()
        {
           alert("Hello from MyNamespace2!");
        },

        AddEmUp: function (a, b)
        {
           return a + b;
        }
     };
  }
Run Code Online (Sandbox Code Playgroud)

语法#1更加冗长,但似乎更容易维持下去.我不需要在方法之间添加逗号,我可以保持对齐所有函数.

还有其他更好的方法吗?

Arm*_*nco 1

作为记录,我最终使用了第一种语法:

$(function ()
{
   //********************************
   // PREDIKT NAMESPACE
   //********************************

   if (typeof (Predikt) === "undefined")
   {
      Predikt = {};
   }

   //********************************
   // PREDIKT.TIMER NAMESPACE
   //********************************

   if (typeof (Predikt.Timer) === "undefined")
   {
      Predikt.Timer = {};
   }

   Predikt.Timer.StartTimer = function ()
   {
      return new Date().getTime();
   };

   Predikt.Timer.EndTimer = function ()
   {
      return new Date().getTime();
   };

});
Run Code Online (Sandbox Code Playgroud)