私はDRYプログラミングに従おうとしています。私は自分自身を繰り返していますので、親メソッド内でいくつかのコードを助けるメソッドをネストしようとしました。何かを持ち帰るなかったclass.chat.method()
を呼び出す を期待通りにES6クラスのネストメソッド?
chat() {
client.on("chat", (channel, user, message, self) => {
method() {
// code here
}
method() {
// code here
{
}
}
しかし、それがうまくいきませんでした。私が本当に必要とするのは、私が使用するすべての方法でclient.on("chat", callback())
と呼ぶ私のDRYプログラミングを削除することです。これを防ぐことができ、その中で呼び出されたメソッドを持つスニペットが1つだけあるかどうか不思議です。
FULL CODE:
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);
}
});
}
イベントを扱う 'client'ではなく、全く別のオブジェクトにそれらを配置したいのですか? – Bergi
あなたはどういう意味ですか? –
私はチャットをイベントに対処したいですが、チャットイベントを呼び出す代わりにただ1つのチャットイベントを1回だけ、クラスに新しいメソッドを書きます。 –