Automatically bind methods to their class instance
JavaScript
461
37 commits
updated Sep 18, 2026
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.
npm install auto-bind
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
Bind methods in self to their class instance.
Returns the self object.
Type: object
An object with methods to bind.
Type: object
Type: Array<string | RegExp>
Bind only the given methods.
Type: Array<string | RegExp>
Bind methods except for the given methods.
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);
}
// …
}
41 followers · starred May 2020
Automatically bind methods to their class instance
JavaScript
461
37 commits
updated Sep 18, 2026
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.
npm install auto-bind
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
Bind methods in self to their class instance.
Returns the self object.
Type: object
An object with methods to bind.
Type: object
Type: Array<string | RegExp>
Bind only the given methods.
Type: Array<string | RegExp>
Bind methods except for the given methods.
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);
}
// …
}
41 followers · starred May 2020