Skip to content

Latest commit

 

History

History
81 lines (52 loc) · 1.21 KB

README.md

File metadata and controls

81 lines (52 loc) · 1.21 KB

autobindthis

Binds methods to their class instance automagically

Install

$ npm install autobindthis

Usage

const autobind = require('autobindthis');

class Bat {
	constructor(name) {
		this.name = name;
		autobind(this);
	}

	ultrasonic() {
		return `${this.name} comes closer!`;
	}
}

const bat = new Bat('Quasel');

// Reference the method off the class instance
const ultrasonic = bat.ultrasonic;

// 'this' still refers to the class instance
ultrasonic();
//=> 'Quasel comes closer!'

// Without `autobind(this)`, the above would have resulted in
ultrasonic();
//=> Error: Cannot read property 'name' of undefined

API

autobind(self, [options])

Binds methods in self to their class instance.

self

Type: Object

Object with methods to bind.

options

Type: Object

exclude

Type: Array<string>

Given methods are excluded from binding

autobind.react(self, [options])

Same as autobind, uses predefined set of method names to exclude the default React component methods.

class Robot extends React.Component {
	constructor(props) {
		super(props);
		autobind.react(this);
	}

	// …
}

License

MIT