JQuery 命名空间 + 通用实用函数的最佳实践

2024-05-25

目前有哪些“经验法则”为了实施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;
        }
     };
  }

语法 #1 更加冗长,但看​​起来它会更容易维护。我不需要在方法之间添加逗号,并且可以左对齐所有函数。

还有其他的吗,better有什么方法可以做到这一点?


对于 jQuery 插件和这样的模式是使用$.fn.myPlugin如果您希望它在元素上可用,并且$.whatever如果您只想使用名称空间。建议看官方的插件 编写文档 http://docs.jquery.com/Plugins/Authoring and these http://stefangabos.ro/jquery/jquery-plugin-boilerplate/#overview articles http://www.viget.com/inspire/jquery-plugin-patterns/.

但除了 jQuery 之外,为你的 utils 命名空间的最简单方法是沿着以下几行:

var utils = window.utils || {};
utils.method = function(){};

JS 中命名空间的基础知识最近并没有真正改变 - 你应该检查一下斯努克的文章 http://snook.ca/archives/javascript/javascript_name/, DED 的优雅方法 http://www.dustindiaz.com/namespace-your-javascript/ and 这个问题 https://stackoverflow.com/questions/881515/javascript-namespace-declaration.

使用自调用函数声明命名空间的主要优点是您可以在返回对象之前私下执行内容。此外,该对象将准备好由您的控制台自动完成,您将在$命名空间,因为 jQuery 返回一个函数而不是一个对象。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JQuery 命名空间 + 通用实用函数的最佳实践 的相关文章

随机推荐