I have thought it may be interesting to receive some comment here too ... so here the short summary:<div><br></div><div><font class="Apple-style-span" face="'courier new', monospace">genericCallback.bind(sameObject) !== genericCallback.bind(sameObject)</font></div>
<div><br></div><div>quite inconvenient for listeners and leading to uncomfortable patterns ( store the bound reference somewhere and get it back later )</div><div><br></div><div>plus bind, at the end of a function, where the topic is the context, looks more like a yoda statement</div>
<div><br></div><div>"function with context as this object"</div><div><br></div><div>rather than</div><div><br></div><div>"object as context of this function"</div><div><br></div><div>So, the proposal, is a simplified Object.prototype.boundTo ( or eventually, to avoid conflicts with bind signature Object.prototype.asContextOf )</div>
<div>where the action is object, as context, related, and the returned function is one and one only</div><div><br></div><div><span class="Apple-style-span" style="font-family:'courier new',monospace"><span class="Apple-style-span">sameObject.boundTo(</span>genericCallback<span class="Apple-style-span">) === </span><span class="Apple-style-span">sameObject.boundTo(</span>genericCallback<span class="Apple-style-span">)</span></span></div>
<div><br></div><div>or, if you prefer</div><div><br></div><span class="Apple-style-span" style="font-family:'courier new',monospace"><span class="Apple-style-span">sameObject.asContextOf(</span>genericCallback<span class="Apple-style-span">) === </span></span><span class="Apple-style-span" style="font-family:'courier new',monospace">sameObject.asContextOf</span><span class="Apple-style-span" style="font-family:'courier new',monospace"><span class="Apple-style-span">(</span>genericCallback<span class="Apple-style-span">)</span></span><div>
<font class="Apple-style-span" face="'courier new', monospace"><br></font></div><div><div>Here the whole post with better examples plus the proposed solution that would be nice to have in JS.Next</div><div><a href="http://webreflection.blogspot.com/2012/01/improving-functionprototypebind.html">http://webreflection.blogspot.com/2012/01/improving-functionprototypebind.html</a></div>
<div><br></div><div>Best Regards,</div><div>    Andrea Giammarchi</div></div>