Binding Arguments with Bind
One of my favorite and most essential Function
method is bind
, a function we added to MooTools when it wasn't featured in the JavaScript language itself. We often think of using bind
to simply bind a method's call to its host object, but did you know you can also bind arguments with the host object?
You've probably done something like this:
this._onTargetAvailable = this._onTargetAvailable.bind(this);
That pattern is frequently used, especially in classed-based code or when passing callback functions. What you may not often see is bound arguments:
this._onTargetAvailable = this._onTargetAvailable.bind( this, arg1, arg2, arg3 );
Binding arguments gives you more power in how your bound function is used! Whenever onTargetAvailable
is called, the arguments you provide will be in that order, and any additional arguments will be added to the end of the argument list!