String methods with higher-order functions : <p>I ran into a weird thing while trying to use String methods with higher-order functions. This will throw an error:</p>

<pre><code>['a', 'b'].some('boo'.includes)
</code></pre>

<p>I have to wrap the predicate in another function to make it work. But isn't <code>'boo'.includes</code> already a function?</p>

<p>This works with plain functions:</p>

<pre><code>const boo = {
    includes: () =&gt; true
};

['a', 'b'].some(boo.includes)
</code></pre>

<p>Is there some special property of String methods that prevents them from being composed like this?</p>
