title: Difference between arrow function and bind()
body: <p>I am little confused about while object missing the reference(context).  </p>
  
  <p>In TypeScript (shown here with some dummy parameters for explanatory reasons):</p>
  
  <p><strong>Fat Arrow</strong></p>
  
  <pre><code>var x = new SomeClass();    
  someCallback(function(a){x.doSomething(a)});// some time this x object may 
  missing the    reference (context) of x object
  
  someCallback(a =&gt; x.doSomething(a));// if we using arrow function, then how 
  it manage stabling the object context? which is doing same below bind()code. 
  </code></pre>
  
  <p>bind() : <strong>Functions created from function.bind() always preserve 'this'</strong></p>
  
  <pre><code>var x = new SomeClass();
  window.setTimeout(x.someMethod.bind(x), 100);//bind will be also manage 
  the x context(reference). 
  </code></pre>
  
  <p><strong>Question:</strong></p>
  
  <ul>
  <li>What are the performance and differences between them?</li>
  <li>when to use <code>bind()</code> and <code>arrow(a=&gt;a...)</code> function? </li>
  </ul>