Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zoubin/xbind
Sugar way to adapt the arguments signature of functions.
https://github.com/zoubin/xbind
Last synced: 8 days ago
JSON representation
Sugar way to adapt the arguments signature of functions.
- Host: GitHub
- URL: https://github.com/zoubin/xbind
- Owner: zoubin
- Created: 2015-05-25T08:04:02.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-07-05T03:49:49.000Z (over 9 years ago)
- Last Synced: 2024-11-08T06:49:34.229Z (11 days ago)
- Language: JavaScript
- Homepage:
- Size: 203 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: changelog.md
Awesome Lists containing this project
README
# xbind
Sugar way to adapt the arguments signature of functions.
## Usage
```javascript
var xbind = require('xbind');function arrayify() {
var ret = [];
for (var i = 0, len = arguments.length; i < len; i++) {
ret.push(arguments[i]);
}
return ret;
}console.log(
'`arrayify` just make an array from arguments',
arrayify(0,1,2,3)
)
// `arrayify` just make an array from arguments [ 0, 1, 2, 3 ]console.log(
'use the first argument',
xbind(arrayify).xargs(0)(0,1,2,3)
)
// use the first argument [ 0 ]console.log(
'use the first argument',
xbind(arrayify).first()(0,1,2,3)
)
// use the first argument [ 0 ]console.log(
'use the last argument',
xbind(arrayify).last()(0,1,2,3)
)
// use the last argument [ 3 ]console.log(
'use the first and third arguments',
xbind(arrayify).xargs(0,2)(0,1,2,3),
xbind(arrayify).xargs([0,2])(0,1,2,3)
)
// use the first and third arguments [ 0, 2 ] [ 0, 2 ]console.log(
'append arguments 4,5',
xbind(arrayify).push(4,5)(0,1,2,3)
)
// append arguments 4,5 [ 0, 1, 2, 3, 4, 5 ]console.log(
'prepend arguments 4,5',
xbind(arrayify).unshift(4,5)(0,1,2,3)
)
// prepend arguments 4,5 [ 4, 5, 0, 1, 2, 3 ]console.log(
'slice arguments 1,3',
xbind(arrayify).slice(1,3)(0,1,2,3)
)
// slice arguments 1,3 [ 1, 2 ]console.log(
'filter arguments',
xbind(arrayify).xargs(1,5).filter(Boolean)(0,1,2,3)
)
// filter arguments [ 1 ]```
## xfn = xbind(fn, ctx)
Return a new function with a `xargs` property, through which arguments can be changed.
### fn
Type: `Function`, `String`
Function to be bound. If `String`, it will be treated as a method name of `ctx`
### ctx
Type: `Object`
`Optional``this` value of `fn` when called.
If not specified, `this` will be `this` of `xfn`.## operations
### xfn.xargs(index1, index2)
Select arguments with `index1, index2`
### xfn.first()
Select the first argument
### xfn.last()
Select the last argument
### Array methods
You can operate the argument list using `.push`, `.pop`, `.shift`, `.unshift`, `.slice`, `.splice`, `.filter`, `.map`, `.reduce`, as the argument list is `Array`.
## xbind.identity(o)
Just return a function that returns `o`