title: When should I use call() vs invoking the function directly?
body: <p>I've got a JavaScript application that uses a lot of callbacks. A typical function will take a callback, and wrap it with another callback.</p>
  
  <pre><code>Namespace.foo = function( arg, their_on_success ) {
      var my_on_success = function( result ) {
          console.log( 'my_on_success() called' );
          if( 'function' === typeof their_on_success ) {
                their_on_success( result );
          }
      }
      something( arg, my_on_success );
  };
  </code></pre>
  
  <p>Given the above example, when should such a setup us the native <a href="https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/call"><code>call()</code></a> method (passing the result var as the second argument) rather than invoking <code>their_on_success()</code> and passing in the result via function invocation?</p>