最佳编码实践 JavaScript



我正在做一个JQuery插件来显示像咆哮这样的消息。为了管理这些消息,创建了一个类。因为它是一个插件,所以创建一个全局变量来存储这个类的实例存在一些问题?

有两种解决方案:

  • 使类成为闭包范围(标准)中的私有/局部变量:

(function($) {
    function MyClass() {...};
    $.fn.myPlugin = function(opts) {
        var instance = new MyClass();
        ...
        return this;
    };
})(jQuery);
  • 对类使用 jQuery 命名空间(请注意,现在每个人都可以实例化它,只有在它应该是公共的时才这样做):

jQuery.MyPluginClass = function() {...};
jQuery.fn.myPlugin = function(opts) {
    var instance = new jQuery.MyPluginClass();
    ...
    return this;
};
全局

通常是禁忌。看这里:

http://dev.opera.com/articles/view/javascript-best-practices/#avoidglobals

从本质上讲,它们使命名空间混乱,并使您有可能在其他地方覆盖全局,因为您的变量最终可能属于与其他脚本相同的范围。该网站还提供了一些有关如何处理此问题的很好的例子。

因此,总而言之,最佳做法是不使用全局变量,而是将它们放在自己的命名空间中。希望这有所帮助,很确定这就是您的要求/内容。

最新更新