Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    auto-bindpublic

    auto-bind Build Status

    Automatically bind methods to their class instance

    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.

    autoBind.react(self, [options])

    Same as autoBind, but excludes the default React component methods.

    class Foo extends React.Component {
        constructor(props) {
            super(props);
            autoBind.react(this);
        }
     
        // …
    }

    Related

    • bind-methods - Bind all methods in an object to itself or a specified context

    License

    MIT © Sindre Sorhus

    install

    npm i auto-bind

    Downloadslast 7 days

    71,942

    version

    1.2.0

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar