code: function(layerModel, leafletMap) {
      var self = this;
  
      _.bindAll(this, 'featureOut', 'featureOver', 'featureClick');
  
      var opts = _.clone(layerModel.attributes);
  
      opts.map =  leafletMap;
  
      var // preserve the user's callbacks
      _featureOver  = opts.featureOver,
      _featureOut   = opts.featureOut,
      _featureClick = opts.featureClick;
  
      opts.featureOver  = function() {
        _featureOver  && _featureOver.apply(this, arguments);
        self.featureOver  && self.featureOver.apply(this, arguments);
      };
  
      opts.featureOut  = function() {
        _featureOut  && _featureOut.apply(this, arguments);
        self.featureOut  && self.featureOut.apply(this, arguments);
      };
  
      opts.featureClick  = function() {
        _featureClick  && _featureClick.apply(this, arguments);
        self.featureClick  && self.featureClick.apply(opts, arguments);
      };
  
      layerModel.bind('change:visible', function() {
        self.model.get('visible') ? self.show(): self.hide();
      }, this);
  
      L.CartoDBLayer.prototype.initialize.call(this, opts);
      cdb.geo.LeafLetLayerView.call(this, layerModel, this, leafletMap);
  
    }
docs: var LeafLetLayerCartoDBView = function(layerModel, leafletMap) {