title: When do I need to use _.bindAll() in Backbone.js?
body: <p>I am learning backbone.js, and feel confused on this:
  I am following the tutorial : 
  <a href="http://arturadib.com/hello-backbonejs/" rel="noreferrer">http://arturadib.com/hello-backbonejs/</a></p>
  
  <p>as you can see in the first example (1.js):</p>
  
  <pre><code>(function($){
    var ListView = Backbone.View.extend({    
      el: $('body'), // attaches `this.el` to an existing element.
  
      initialize: function(){
        _.bindAll(this, 'render'); // fixes loss of context for 'this' within methods
  
         this.render(); // not all views are self-rendering. This one is.
      },
  
      render: function(){
        $(this.el).append("&lt;ul&gt; &lt;li&gt;hello world&lt;/li&gt; &lt;/ul&gt;");
      }
    });
  
    var listView = new ListView();      
  })(jQuery);
  </code></pre>
  
  <p>But if I comment out the sentence: <code>_.bindAll(this, 'render');</code>, this will still work. I have searched in google and someone said that the method <code>bindAll()</code> is necessary since if I switched my context, the calling of <code>this.render</code> may unavailable. I feel confused on the "context". and also could some one explain me when the calling (<code>this.render</code>) will unavailable?</p>