In using Backbone.js, I’ve noticed that both views and models are given cids. I understand that if these classes are part of a collection, I can pull any of them by collection.getByCid. Is it at all possible to pull any class, outside of a collection, given its cid, using Backbone?
For example, if I have MyObject.Views.Tree = Backbone.View.extend({ });, I can create a new Tree view from var tree = new MyObject.Views.Tree();. Calling tree.cid returns a specific cid–something like view231. Is there any way to reference my tree view given only its cid? A global Backbone.getByCid method, perhaps?
No.
I think you have a slight misunderstanding of the backbone programming model, as well as JavaScript in general. Backbone doesn’t keep track of what you create; it only helps you create objects with specific prototypes (Models, Collections, etc.). It doesn’t care at all what you do with them. The CID is just a convenience method you can use for indexing and cross-referencing, but you have to write the indices and cross-references yourself.
So if you create an object and don’t keep a reference to it somewhere (in a collection, in your router, in another object), it becomes inaccessible and the JavaScript VM will eventually garbage collect it.