@dlmanning/bind
v1.0.0
Published
Bind and partially apply with memoization
Downloads
25
Readme
Functions
BoundFunction : function
Kind: global interface
Properties
| Name | Type | | --- | --- | | partial | function |
boundFunction.partial ⇒ BoundFunction
Perform a partial application of the provided parameters. The returned function is memoized for a given set of parameters, so that repeated applications will always return the same function object.
Kind: instance property of BoundFunction
Returns: BoundFunction - another BoundFunction with the provided params applied
| Param | Type | Description | | --- | --- | --- | | [...params] | * | zero or more items to partially apply |
Example
const applied = boundMethod.partial('Hello', 'World')
// applied is a BoundFunction which will always be called with "Hello" and
// "World" as its first two params
bind(self, fn) ⇒ BoundFunction
bind a function to the provided context
Kind: global function
Returns: BoundFunction - a bound function
| Param | Type | Description | | --- | --- | --- | | self | Object | context to which the function will be bound | | fn | function | function to be bound |
Example
var boundMethod = bind(this, this.aMethod)
boundMethod() // boundMethod is bound to this
bind.all(self, methods) ⇒ Object.<string, BoundFunction>
bind a collection of functions to the provided context.
Kind: static method of bind
| Param | Type | Description | | --- | --- | --- | | self | Object | context to which the function will be bound | | methods | Array.<string> | Object.<string, function()> | If an array is given, it must be an array of strings whose names are methods on the provided context object. If an object is provided, the returned object will key the bound functions according to those provided. |
Example
// assumes hear, see and speak are methods on this
bind.all(this, ['hear', 'see', 'speak'])
// or you can pass an object with function values, which will be bound to this
bind.all(this, { hear: function1, see: function2, speak: function3 })