view_model = kb.viewModel(model) kb.utils.release(view_model); view_model = null todos = kb.collectionObservable(collection) kb.utils.release(todos); todos = null
var view_model = kb.viewModel(model); kb.utils.release(view_model); view_model = null; var todos = kb.collectionObservable(collection); kb.utils.release(todos); todos = null;
view_model = kb.viewModel(model) same_model = kb.utils.wrappedModel(view_model)
var view_model = kb.viewModel(model); var same_model = kb.utils.wrappedModel(view_model);
model = new Backbone.Model({name: 'Bob'})
view_model =
  wrapped_name: kb.defaultWrapper(kb.observable(model, 'name'), "(no name)')
# view_model.wrapped name: Bob
kb.utils.setToDefault(view_model)
# view_model.wrapped name: (no name)
var model = new Backbone.Model({name: 'Bob'});
var view_model = {
  wrapped_name: kb.defaultWrapper(kb.observable(model, 'name'), "(no name)')
};
// view_model.wrapped name: Bob
kb.utils.setToDefault(view_model);
// view_model.wrapped name: (no name)
Please note:classes start with a capital letter (eg. kb.CollectionObservable) whereas factory methods start with a lower case letter (eg. kb.collectionObservable)
todos = new kb.CollectionObservable(new Backbone.Collection([{name: 'name1'}, {name: 'name2'}]))
kb.utils.observableInstanceOf(todos, kb.CollectionObservable) # true
kb.utils.observableInstanceOf(todos, kb.collectionObservable) # false (factory function not class!)
var todos = new kb.CollectionObservable(new Backbone.Collection([{name: 'name1'}, {name: 'name2'}]))'
kb.utils.observableInstanceOf(todos, kb.CollectionObservable); // true
kb.utils.observableInstanceOf(todos, kb.collectionObservable); // false (factory function not class!)
class ShortDateLocalizer extends kb.LocalizedObservable
  constructor: (value, options, view_model) ->
    super; return kb.utils.wrappedObservable(this)
    var ShortDateLocalizer = kb.LocalizedObservable.extend({
  constructor: function(value, options, view_model) {
    kb.LocalizedObservable.prototype.constructor.apply(this, arguments);
    return kb.utils.wrappedObservable(this);
  }
});