String.prototype.replace === String.replace
<p>When I use <code>call()</code> or <code>apply()</code>, I got a problem.</p>

<pre><code>console.log(String.prototype.replace === String.replace);//false
</code></pre>

<p>I think <code>String.replace</code> should be equal with <code>String.prototype.replace</code>, because they are the same Object.</p>

<p>However,they are different from each other.</p>

<p>What happens when I run the code below:</p>

<pre><code>var s = "a b c";
String.replace.call(s,'a','A');//return "a" 
</code></pre>

<p>Why  doesn't this code throw an error, but return a value?</p>
