I'm trying to work out how the following.

I call a view:

```
var loader = new LoadingView();

```

the function attached to that view this creates a new object 'spinner'

```
loader.showLoader()

```

What I'm now hoping it that I can next call a function that hides that object spinner

```
loader.hideLoader();

```

However, hideLoader does not have access to the 'spinner' object. 

Why?

**view code:**

```
define([
  'jquery',
  'underscore',
  'backbone',
  'spinner',
], function($, _, Backbone, Spinner){

  var LoadingView = Backbone.View.extend({
       el: '#loader',
       // View constructor
        initialize: function() {
             this.opts = {
              zIndex: 2e9, // The z-index (defaults to 2000000000)
              top: '20', // Top position relative to parent in px
              left: 'auto' // Left position relative to parent in px
            };
            _.bindAll(this, 'showLoader', 'hideLoader');
        },

      showLoader: function () {
        var spinner = new Spinner(this.opts).spin(this.el);
    },

     hideLoader: function () {
         var self = this;
         console.log(self)
      this.spinner.stop();
    }

    }); // end loaderview

return LoadingView;
});

```