Kindly explain why in following example the output is 'undefined'? : <p>Why the value of outcome is 'undefined' in the following example? Kindly explain someone how is this calculated? </p>

<p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;script&gt;
var foo = {
  bar: function() { return this.baz; },
  baz: 1
};

var a = (function(){
  return typeof arguments[0]();
})(foo.bar);

console.log(a);
&lt;/script&gt;</code></pre>
</div>
</div>
</p>

<blockquote>
  <p>Note: I've been through following link and it doesn't explain this
  example. There is no constructor function here ...
  <a href="https://stackoverflow.com/questions/20279484/how-to-access-the-correct-this-inside-a-callback">How to access the correct `this` inside a callback?</a></p>
</blockquote>
