Если у вас есть какая-то логика, которая должна вызываться несколько раз — вынесите её в отдельный метод. Если вызов этой логики обязателен, и экземпляр класса не может работать до того момента как этот метот отработает впервые — вызывайте его в конструкторе.
Пример, когда вызов метода избыточен
class User {
constructor ({name, age}) {
this.name = name
this.age = age
}
greet() {
console.log(`Hi! I'm ${this.name}`)
}
}
const alex = new User({name: 'Alex', age: 18})
alex.greet() // <- Optional request
Пример, когда вызов метода в конструкторе необходим
class User {
constructor ({name, age, roles}) {
this.name = name
this.age = age
this.hasAccess = null
this.setRoles(roles) // <- Require request
}
setRoles(roles) {
if (roles.access) {
this.hasAccess = true
} else {
this.hasAccess = false
}
}
greet() {
console.log(`Hi! I'm ${this.name}`)
return this
}
}
const alex = new User({name: 'Alex', age: 18, roles: {access: true}})
alex.setRoles({access: false}) // <- Optional request