我一直在尝试遵循DRY编程,我一直在重复自己,所以我尝试在父方法中嵌套方法来帮助一些代码。
chat() {
client.on("chat", (channel, user, message, self) => {
method() {
// code here
}
method() {
// code here
{
}
}
但这并没有像预期的那样成功
致电class.chat.method()
并没有带回任何东西。我真正需要帮助的是删除我的DRY编程我每次使用的方法都调用client.on("chat", callback())
。好奇是否可以预防这种情况,并且只有一个片段,其中包含调用其中的方法。
完整代码:
watchFor(command, res, sendersName, prefix) {
this.client.on("chat", (channel, user, message, self) => {
console.log(this._showSendersName.whitelistedCommands);
if (message == this.prefix + command || message == prefix + command) {
return this.client.say(channel, res);
}
});
}
modOnly(command, res) {
this.client.on("chat", (channel, user, message, self) => {
if (this._showSendersName == false) {
if (self) return
}
if (message == this.modPrefix + command && user.mod || message == this.prefix + command && user.mod) {
return this.client.say(channel, res);
}
});
}
broadcasterOnly(command, res) {
this.client.on("chat", (channel, user, message, self) => {
if (this._showSendersName == false) {
if (self) return
}
if (message == this.prefix + command && user.badges.broadcaster == 1) {
return this.client.say(channel, res);
}
});
}
答案 0 :(得分:1)
您不能在对象初始值设定项之外使用ES6方法定义速记。尝试在函数范围内声明另一个函数:
chat() {
client.on("chat", (channel, user, message, self) => {
const sharedMethod = () => {
// code here
}
sharedMethod()
})
}