Why doesn't Javascript bind my dot expression correctly? : <p>I am wondering whether dot-abstraction methods (e.g. <code>dog.bark</code>) bind at runtime or at compile-time. My question concerns the following code, which throws an error:</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-js lang-js prettyprint-override"><code>(true ? ''.toLowerCase : ''.toUpperCase)()</code></pre>
</div>
</div>
</p>

<p>But the following does not:</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-js lang-js prettyprint-override"><code>true ? ''.toLowerCase() : ''.toUpperCase()</code></pre>
</div>
</div>
</p>

<p>Why is my string literal <code>''</code> not getting resolved in the first example?</p>
