Automaticlly bind 'this' scope of all methods in es6 class
npm install es6-class-bind-allAs you see, too many .bind() operations in constructor. Once you have tons of classes
are called in callback or whatever something change it's scope, it will be horribly troublesome.
``js
class Person {
constructor() {
this.name = 'Steve'
this.age = 20
this.gender = 'male'
this.setName = this.setName.bind(this)
this.setAge = this.setAge.bind(this)
this.setGender = this.setGender.bind(this)
}
setName(name) {
this.name = name
}
setAge(age) {
this.age = age
},
setGender(gender) {
this.gender = gender
}
}
`
Bind all methods in constructor.
`js
import es6ClassBindAll from 'es6-class-bind-all'
class Person {
constructor() {
this.name = 'Jack'
this.age = 20
this.gender = 'male'
es6ClassBindAll(this)
}
setName(name) {
this.name = name
}
setAge(age) {
this.age = age
},
setGender(gender) {
this.gender = gender
}
}
`
Or you can bind specified methods in constructor depend on your situation.
`js`
es6ClassBindAll(this, ['setGender'])
`bash`
yarn add es6-class-bind-all --dev
or npm
`bash``
npm install es6-class-bind-all --save-dev
The MIT License (MIT). Please see License File for more information.