docs: function(args) {
        View.apply(this, arguments);
        args = args || {};
  
        var collection = args.collection || this.collection;
  
        this.template = args.template || this.template;
        this.emptyTemplate = args.emptyTemplate || this.emptyTemplate;
        this.itemView = args.itemView || this.itemView;
        this.itemContainer = args.itemContainer || this.itemContainer;
        if (this.template && !this.itemContainer) {
          throw 'Item container is required when using a template';
        }
        this.modelsToRender = args.modelsToRender || this.modelsToRender;
        this.__itemContext = args.itemContext || this.__itemContext;
        this.__modelToViewMap = {};
        this.__renderWait = args.renderWait || this.__renderWait;
        this.__modelId = args.modelId || this.modelId || 'cid';
        this.__modelName = args.modelName || this.modelName || 'model';
        this.__orderedModelIdList = [];
        this.__createItemViews();
        this.__delayedRender = aggregateRenders(this.__renderWait, this);
  
        if (collection) {
          this.setCollection(collection, true);
        }
        this.on('render:after-dom-update', this.__cleanupItemViewsAfterAttachedToParent);
      }