Why I can call Array.prototype.filter() on a object which is not an array?
<pre><code>filter    Creates a new array with all elements that pass
          the test implemented by the provided function.
</code></pre>

<hr>

<pre><code>&gt;&gt;&gt; 'abc'.filter(function(e){return e!='b'})
TypeError: "abc".filter is not a function

&gt;&gt;&gt; Array.prototype.filter.call('abc', function(e){return e!='b'})
["a", "c"]

&gt;&gt;&gt; jQuery.isArray('abc')
false
</code></pre>
