我们的插件功能类似于:var pluginName = function(selector, settings){}
。所以用户称之为var myPlugin = new pluginName('#id', {settings})
。但是如何检测该用户再次调用它,例如,使用新选项:myPlugin = new pluginName('#id', {settings_2})
?
我们需要检测这个以防止附加双事件:类似于destroy创建对象/删除事件并再次调用init。
问题是我们无法访问myPlugin
变量来检查它。
答案 0 :(得分:1)
只需将插件放在它自己的范围内:
var pluginName = (function(){
var plugin_created = false;
var plugin = function(selector, settings){
if(plugin_created) return false;
plugin_created = true;
//rest of the plugin class
}
return plugin;
})();
因此,当您第一次创建它时,它会将其局部范围变量设置为true
,然后任何其他创建都将失败。