back to Overview

_.bind()

Creates a new function that calls the given function bound to the given object as 'this', and optionally with the specified 'pre-filled' arguments to be appended or prepended to the arguments you all the new function with.
Util module only.

Syntax Variants

_.bind(f, fThis)
_.bind(f, fThis, beforeArgs)
_.bind(f, fThis, beforeArgs, afterArgs)

Parameters

f
the function to bind
fThis
the object to pass as 'this'. Please note JavaScript's limitations for 'this'. If you attempt to pass a string or number, they will be wrapped using JavaScript's wrapper classes String and Number.
beforeArgs (optional)
either a list of values to insert in front of the arguments, or a single non-list value to put in front. If null or not set, there won't be any arguments inserted. If you need to insert a null, undefined or a list, just wrap them in an array (e.g. [null]).
afterArgs (optional)
either a list of values to append to the end of the arguments, or a single non-list value to append. If null or not set, there won't be any arguments appended. If you need to append a null, undefined or a list, just wrap them in an array (e.g. [null]).
(return value)
the new function that will invoke f with its arguments modified as specified about.

Description

Creates a new function that calls the given function bound to the given object as 'this', and optionally with the specified 'pre-filled' arguments to be appended or prepended to the arguments you all the new function with.

See also _.partial(), if you do not need to set 'this'.

Example

Create a method that multiplies all list elements:

function mul(factor) { return this.map(function(v) { return v * factor; }; }
var myList = _(1, 2, 3);
var mulMyList = _.bind(mul, myList);       // binding only 'this'
var mulMyList5 = _.bind(mul, myList, 5);   // binding 'this' and prepending a parameter

var myList4 = mulMyList(4); // returns _(4, 8, 12)
var myList5 = mulMyList(); // returns _(5, 10, 15)

See also..

  • _.partial() is similar to bind(), but without the 'this' argument.

Comments

comments powered by Disqus

back to Overview

Functions