<div dir="ltr"><div><div><div>I got my lack-of-sleep addled head around this by realising that an arrow function performs like an immediately bound function expression:<br><br></div>```js<br></div>var test = (function (){<br>

</div>    // Do stuff with this...<br><div>}).bind(this);<br></div><div><div>```<br><br></div><div>i.e. Domenic's second example function. Then it was obvious that arrow functions are not really throwing anything new into the mix with regard to bind, apply, and call.<br>

</div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 25 August 2014 10:54, Till Schneidereit <span dir="ltr"><<a href="mailto:till@tillschneidereit.net" target="_blank">till@tillschneidereit.net</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div class="">On Mon, Aug 25, 2014 at 4:30 AM, Boris Zbarsky <span dir="ltr"><<a href="mailto:bzbarsky@mit.edu" target="_blank">bzbarsky@mit.edu</a>></span> wrote:<br>


</div><div class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>On 8/24/14, 10:26 PM, Mark Everitt wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
The problem remains that arrow functions make<br>
bind etc. unpredictable.<br>
</blockquote>
<br></div>
I think part of Domenic's point is that return values of bind() also make bind (and call/apply for that matter) unpredictable.<span><font color="#888888"><br></font></span></blockquote><div><br></div></div><div>
More fundamentally, I guess you could say that every function that doesn't use `this` makes `bind` unpredictable. Domenic's second example shows a function like that.<br><br></div><div>I would argue that, if anything, arrow functions slightly improve predictability: before arrow functions, the only way to meaningfully "predict" the change in behavior that `bind` causes for a functions was by looking at its source code *and by ensuring that the function hasn't been bound already*. For arrow functions, you only need to inspect the source code. (Granted, this probably isn't *that* much of a real-world improvement.)<br>


</div></div></div></div>
</blockquote></div><br></div>