我正在做一个JQuery插件来显示像growl这样的消息。要管理这些消息已经创建了一个类。因为它是一个插件,在创建一个全局变量来存储这个类的实例时存在一些问题吗?
答案 0 :(得分:3)
有两种解决方案:
(function($) {
function MyClass() {...};
$.fn.myPlugin = function(opts) {
var instance = new MyClass();
...
return this;
};
})(jQuery);
jQuery.MyPluginClass = function() {...};
jQuery.fn.myPlugin = function(opts) {
var instance = new jQuery.MyPluginClass();
...
return this;
};
答案 1 :(得分:2)
全球通常是禁忌。见这里:
http://dev.opera.com/articles/view/javascript-best-practices/#avoidglobals
基本上,它们会混淆命名空间,让您在其他地方覆盖全局覆盖,因为您的变量可能最终落在与其他脚本相同的范围内。该网站还提供了一些关于如何处理这个问题的好例子。
总而言之,最佳做法是不使用全局变量,而是将它们放在自己的命名空间中。 希望这有所帮助,非常肯定这就是你要求/关于的。