auto-bind
    TypeScript icon, indicating that this package has built-in type declarations

    5.0.1 • Public • Published

    auto-bind

    Automatically bind methods to their class instance

    It also correctly binds inherited properties.

    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

    API

    autoBind(self, options?)

    Bind methods in self to their class instance.

    Returns the self object.

    self

    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

    Install

    npm i auto-bind

    DownloadsWeekly Downloads

    1,838,803

    Version

    5.0.1

    License

    MIT

    Unpacked Size

    6.8 kB

    Total Files

    7

    Last publish

    Collaborators

    • sindresorhus