如何通过省略重复函数来缩小javascript

如何通过省略重复函数来缩小javascript,javascript,Javascript,它从聊天和昵称中检测字母表,并在检测时禁止 MPP.client.on(“”,R)重复两次,我想知道是否有任何方法可以使用其中一个来编写此代码。您的代码非常好。通过创建函数并将其分配给R,可以保证函数对象只创建一次,即使它作为参数出现两次: function ban(id, S) {S.match(/[a-z]/i) && id !== MPP.client.getOwnParticipant()._id && MPP.client.sendArray([{m

它从聊天和昵称中检测字母表,并在检测时禁止


MPP.client.on(“”,R)重复两次,我想知道是否有任何方法可以使用其中一个来编写此代码。

您的代码非常好。通过创建函数并将其分配给
R
,可以保证函数对象只创建一次,即使它作为参数出现两次:

function ban(id, S) {S.match(/[a-z]/i)  && id !==
MPP.client.getOwnParticipant()._id  &&
MPP.client.sendArray([{m: "kickban", _id: id, ms: 3e4}])}

var R = pp => {ban(pp._id, pp.name)};

MPP.client.on("participant added", R);
MPP.client.on("participant update", R);
MPP.client.on('a', A => ban(A.p._id, A.a));
如果这两个看起来相似的电话让你有点困扰,你可以写:

这将减少你必须输入两次的单词


但是,考虑一下降低可读性的代价。但是,如果您可能有五个或更多这样的调用,那么是的,像这样的循环将是一种改进。:)

你是想找到一个小型化器,它会影响小型化的代码(即通过网络保存字节),还是说你真的不想重复自己来简化/使事情更可读(即重构)?还有,什么是
MPP.client
?我想你可以
var on=(…args)=>MPP.client.on(…args)。如果需要更少的字符,也可以省略分号。但我更喜欢编写可读的代码,并将小型化留给自动工具
MPP.client.on("participant added", R);
MPP.client.on("participant update", R);
["added", "update"].forEach((action) => {
    MPP.client.on(`participant ${action}`, R);
});