How To Define Model Properties

How to define properties directly on Backbone models.

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min.js"></script>

JavaScript

var MyModel = Backbone.Model.extend({
    
    defaults: {
        attr1: 'val1',
        attr2: 'val2',
        attr3: 'val3'
    },
    
    initialize: function() {
        _( this.attributes )
            .keys()
            .each( function( i ) {
                Object.defineProperty( this, i, {
                    get: _.partial( this.get, i )
                });
            }, this );
    }
    
});

var model = new MyModel();
console.log(model.attr1);