code: function (name, Constructor) {
  		function changeCallback(model, value, options) {
  			if ( value && !( value instanceof Constructor ) ) {
  				this.set( name, new Constructor( value ), options );
  			}
  		}
  
  		changeCallback.call( this, this, this.get( name ) );
  		this.on( 'change:' + name, changeCallback, this );
  	}
docs: Helps you define a type for a given attribute. This helps you have nested Models/Collections.
  It forces the specified attribute to be an instance of the specified `Constructor`.
  Sets a listener to check if the attribute is an instance of `Constructor` whenever the attribute is changed.
  If it's not an instance of `Constructor`, it instantiates the `Constructor` (passing the current attribute's value)
  and sets that instance as the value of such attribute.
  
  @param {String} name Name of the attribute.
  @param {Function} Constructor