babel-autobind

it binds methods to its class prototype + Compatible with stub/spy used on unit-test frameworks (Sinon.Js, enzyme,...so on) + Can be integrated with 3rd party decorators (like @autobind decorator)

Usage no npm install needed!

<script type="module">
  import babelAutobind from 'https://cdn.skypack.dev/babel-autobind';
</script>

README

Build Status Coverage Status

Overview

it binds methods to its class prototype + Compatible with stub/spy used on unit-test frameworks (Sinon.Js, enzyme,...so on) + Can be worked together with other 3rd party decorators (like autobind-decorator)

Basic Example :

import {Autobind} from 'babel-autobind';

@Autobind
 class MyComponent extends React.Component {

 }
 export default MyComponent;

Or

import {Autobind} from 'babel-autobind';

 class MyComponent extends React.Component {

 }
 export default Autobind(MyComponent);

@Autobind decorator is more elegant than Autobind(...) function , However , Autobind(...) function is overloaded . Indeed, it accepts 2nd argument to rename the class after binding.

Example

import {Autobind} from 'babel-autobind';

 class MyComponent extends React.Component {

 }
 export default Autobind(MyComponent,'YourComponent');

From release 0.3.3, it is possible to rename the class name from decorator too.

Example

import {Autobind} from 'babel-autobind';

@Autobind('YourComponent')
 class MyComponent extends React.Component {

 }
 export default MyComponent;