Here's an alternative implementation inspired by @ numbers1311407 comments on the question.
Collections.MyObjects = Backbone.Collection.extend({ model: Models.MyObject }); Collections.MyObjects.instance = (function(){ var instances = {}, defaultName = 'default'; return { "get": function(name) { name = name || defaultName; if (!instances[name]) { instances[name] = new Collections.MyObjects(); } return instances[name]; }, "delete": function(name) { name = name || defaultName; if (!instances[name]) return false; delete instances[name]; return true; } }; })();
Not tested.
source share