Wondering what’s next for npm?Check out our public roadmap! »

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

    4.0.0 • Public • Published

    auto-bind Build Status

    Automatically bind methods to their class instance

    It also correctly binds inherited properties.

    Install

    $ npm install auto-bind
    

    Usage

    const autoBind = require('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

    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.

    const autoBindReact = require('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

    960,638

    Version

    4.0.0

    License

    MIT

    Unpacked Size

    6.7 kB

    Total Files

    7

    Last publish

    Collaborators

    • avatar