2013-04-24 48 views
1

我們的插件功能是一樣的東西:var pluginName = function(selector, settings){}。所以用戶這樣稱呼它var myPlugin = new pluginName('#id', {settings})。但是,如何檢測用戶再次調用它,例如,用新的選項:myPlugin = new pluginName('#id', {settings_2})如何防止不止一個對象的init電話嗎?

我們需要檢測這個來防止附加雙重事件:類似於銷燬創建的對象/移除事件並再次調用init。

所以,問題是我們沒有獲得myPlugin變量來檢查它。

+0

搜索「如何在JavaScript中實現單例」。 – Floremin 2013-04-24 15:30:49

回答

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,然後任何其他作品都將失敗。