Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/knpwrs/pass-context
Higher-order function to create a function which receives its context as its first argument.
https://github.com/knpwrs/pass-context
Last synced: 1 day ago
JSON representation
Higher-order function to create a function which receives its context as its first argument.
- Host: GitHub
- URL: https://github.com/knpwrs/pass-context
- Owner: knpwrs
- License: mit
- Created: 2017-04-10T02:10:09.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-05T08:00:12.000Z (about 7 years ago)
- Last Synced: 2024-10-13T23:37:55.730Z (about 1 month ago)
- Language: JavaScript
- Size: 5.86 KB
- Stars: 0
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pass-context
[![Greenkeeper badge](https://badges.greenkeeper.io/knpwrs/pass-context.svg)](https://greenkeeper.io/)
> Higher-order function to create a function which receives its context as its
> first argument.## What?
Sometimes you want to use arrow functions with an API that was designed with
context (`this`) in mind. This is a small library which will pass a function's
execution context as that function's first argument. The arguments which are passed to the function are passed in addition to the context argument.## Installation
### npm
```
npm i -S pass-context
```The library function is the default export of the package.
### CDN (UMD)
```
https://unpkg.com/[email protected]/dist/pass-context.min.js
```The library function is exported as `passContext`.
## Usage
```js
import pc from 'pass-context';
const input = document.querySelector('.my-fancy-input');
input.addEventListener('change', pc((ctx, event) => {
// `ctx` is what is normally accessible with `this` as if a normal function were passed as the event listener.
// `event` (and any additional arguments) are the normal arguments passed in-order after the context argument.
// Since this is an arrow function, `this` is inherited.
}));
```### Detailed Usage Example
```js
import pc from 'pass-context';
const fn = pc(({ foo }, bar) => foo + bar);
console.log(fn.call({ foo: 'Hello, '}, 'World!')); // Logs "Hello, World!"
```## License
**MIT**