这是我的看法:
define(
    [
        "jquery"
    ,   "underscore"    
    ,   "backbone"
    ,   "eventView"
    ]
,   function($, _, Backbone, EventView) {
        "use strict";
        var TimelineView = Backbone.View.extend({
            tagName: 'div'
        ,   className: 'column'
        ,   _EventViews: {} // Cache event views for reuse
        ,   initialize: function() {
                this.collection.bind('add', this.add);
                this.collection.bind('reset', this.add);
            }
        ,   render: function() {
                return this;
            }
            // Listen for additions to collection and draw views
        ,   add: function(model) {
                var eventView = new EventView({
                    model: model
                });
                // Cache the event
                console.log(this._EventViews);
                this._EventViews[model.get('id')] = eventView;
                // Draw event
                eventView.render(); 
            }
        });
        return TimelineView
    }
);
如您所见,我将_EventViews属性设置为包含一个空对象。但是,当我调用该add()函数console.log(this._EventViews)时返回 undefined 并且以下语句失败。
谁能告诉我这是为什么?