Why does setTimeout(location.reload) throw a TypeError?
<p>I'm trying to understand the strange behavior of this code:</p>

<pre><code>window.setTimeout(window.location.reload, 200);
</code></pre>

<ul>
<li><p>In Firefox this throws a TypeError: </p>

<blockquote>
  <p>TypeError: 'reload' called on an object that does not implement interface Location.</p>
</blockquote></li>
<li><p>In Chromium this throws another TypeError:</p>

<blockquote>
  <p>Uncaught TypeError: Illegal invocation</p>
</blockquote></li>
</ul>

<hr>

<p>These two alternatives work fine:</p>

<ul>
<li><code>window.setTimeout('window.location.reload()', 200);</code></li>
<li><code>window.setTimeout(function(){window.location.reload()}, 200)</code></li>
</ul>

<p>Why?</p>