GitHub - sindresorhus/auto-bind: Automatically bind methods to their class insta...
source link: https://github.com/sindresorhus/auto-bind
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
auto-bind
Automatically bind methods to their class instance
It also correctly binds inherited properties.
If you're targeting Node.js 12 and later or the browser, you should consider using class fields instead.
Install
npm install auto-bind
Usage
import autoBind from 'auto-bind';
class Unicorn {
constructor(name) {
this.name = name;
autoBind(this);
}
message() {
return `${this.name} is awesome!`;
}
}
const unicorn = new Unicorn('Rainbow');
// Grab the method off the class instance
const message = unicorn.message;
// Still bound to the class instance
message();
//=> 'Rainbow is awesome!'
// Without `autoBind(this)`, the above would have resulted in
message();
//=> Error: Cannot read property 'name' of undefined
autoBind(self, options?)
Bind methods in self
to their class instance.
Returns the self
object.
Type: object
An object with methods to bind.
options
Type: object
include
Type: Array<string | RegExp>
Bind only the given methods.
exclude
Type: Array<string | RegExp>
Bind methods except for the given methods.
React
Same as autoBind
but excludes the default React component methods.
import autoBindReact from 'auto-bind/react';
class Foo extends React.Component {
constructor(props) {
super(props);
autoBindReact(this);
}
// …
}
Related
- bind-methods - Bind all methods in an object to itself or a specified context
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK