This AI is still in early stages of development.
function.wraps()
- Aubergine
Owned by Aubergine
Create a new function by wrapping an existing function in another existing function...
Syntax
The parameters to newFn are passed to innerFn. The return value of innerFn is passed as the sole parameter to outerFn (the wrapper) and the return value of outerFn is then passed to the calling script...
var newFn = outerFn.wraps(innerFn); result = newFn(args...);
Parameters / Functions
Parameter / Function | Type | Mandatory | Description | API Version |
---|---|---|---|---|
innerFn | Function | The inner function that will be called first with the arguments passed in to newFn | 1.0 | |
outerFn | Function | The outer function that will be called second with a single argument that is the return value of innerFn. outerFn should require only a single parameter as it's not possible for innerFn to return multiple arguments. | 1.0 | |
args... | Variant | When calling newFn you can optionally specify one or more arguments that will be passed to innerFn | 1.0 |
Return value
Value | Type | Description | Util.js version |
---|---|---|---|
newFn | Function | A new function based on the composition of innerFn and outerFn | 1.0 |
<result> | Variant | The return value of the new function is derived as follows:
| 1.0 |
Example
Create a rounded square root function based on Math.sqrt and Math.round functions
var roundedSqRoot = Math.round.wraps(Math.sqrt); roundedSqRoot(28); // 5 // Here's why: // 1. Math.sqrt(28) → 5.291502622129181 // 2. Math.round(5.291502622129181) → 5
Contents
Jump to:
Function Manipulation
Topics:
- function.wraps() — Create a new function by wrapping an existing function in another existing function...
- function.curry() — Create a new function based on an existing function but with some parameters pre-defined.
- n.times() — Invoke a function n times...
See Also
Related pages:
- Function Composition – the blog post that inspired the wraps() function in Util API
- Hook API – create input/output hooks on any function