title: What does it mean when you bind something to a timeout?
body: <p>In a sample that I have, they have simulated an ajax-call like this:</p>
  
  <pre><code>route('/page1', 'template1', function () {
    this.greeting = 'Hello world!';
    this.moreText = 'Loading...';
  
    // Simulating an Ajax call which take 0.5 s
    setTimeout(function () {
      this.moreText = 'Bacon ipsum...';
    }.bind(this), 500);
  });
  </code></pre>
  
  <p>the bind seem to update "this" and trigger</p>
  
  <pre><code>Object.observe(current.controller, current.render.bind(current));
  </code></pre>
  
  <p>that updates a view.</p>
  
  <p>I try to perform the same thing with an actual ajax-call:</p>
  
  <pre><code>route('/products', 'item_tmpl', function(){
      this.products = []
      $.getJSON('/data/list.json', function(data){
          this.products = data;
          //var dataObject = { products: data };
      }).bind(this);
  })
  </code></pre>
  
  <p>But that returns undefined is not a function.</p>