Javascript 如何将参数分配给事件?

Javascript 如何将参数分配给事件?,javascript,discord.js,Javascript,Discord.js,所以我试图创建一个自动的角色分配,如果用户在我创建的消息中添加了一个特定的反应。当我开发这个时,我遇到了一些我不明白的事情: 表示,messageReactionAdd事件提供两个参数: messageReaction 用户 但是我的事件处理程序仅将客户机和Discord参数绑定到事件。让我向您展示我的代码: 事件处理程序: module.exports=(客户端,不一致)=>{ const load_dir=(dirs)=>{ const event_flies=fs.readdirSyn

所以我试图创建一个自动的
角色
分配,如果
用户
在我创建的消息中添加了一个特定的
反应
。当我开发这个时,我遇到了一些我不明白的事情:

表示,
messageReactionAdd事件
提供两个
参数

  • messageReaction
  • 用户
但是我的
事件处理程序
仅将
客户机
Discord
参数绑定到事件。让我向您展示我的代码:

事件处理程序:
module.exports=(客户端,不一致)=>{
const load_dir=(dirs)=>{
const event_flies=fs.readdirSync(`./events/${dirs}`).filter(file=>file.endsWith('.js'));
for(事件的常量文件){
const event=require(`../events/${dirs}/${file}`);
const event_name=file.split('.')[0];
on(event_name,event.bind(null,client,Discord));
}
};
['client','guild'].forEach(e=>load_dir(e));
};
我用创建了
处理程序
,但我仍然不明白为什么第一个
参数
为空

MessageReactionAdd事件:
module.exports=(客户端、不一致、反应)=>{
console.log('Test');
}
我在
console.log()
上调试以检查参数是否正确

现在有两件事我不明白:

  • 由于我没有通过
    .bind()
    在任何地方分配它,
    reaction
    参数从何而来
  • 如果null的
    绑定
    导致了这种情况,那么为什么参数的顺序不正确?我绑定
    null,client,Discord
    但是在我的
    messageReactionAdd
    中,我必须指定如下参数:
    client,Discord,reaction
    ,尽管我认为reaction是第一个
    参数
有人能给我解释一下为什么
参数
的顺序是颠倒的,如果将null赋值为事件的
参数
就像占位符一样提供特定于事件的
参数


如果您需要更多的代码,请让我知道,我会尽快添加。

您误解了实际操作

bind()
方法创建一个新函数,在调用该函数时,将其
this
关键字设置为提供的值,并在调用新函数时提供的任何参数之前设置一个给定的参数序列

正如这里所提到的,
bind()
在调用函数时会将参数前置到函数中,这就是顺序的结束方式。下面是一个例子:

功能测试(参数1、参数2、参数3){
console.log(param1);
console.log(param2);
console.log(param3);
};
//调用'boundFunction'时,'param1'和'param2'将
//分别分配给'1'和'2'
const boundFunction=test.bind(null,1,2);
//在这个场景中,“3”实际上是“param3”`

边界函数(3)您误解了实际操作

bind()
方法创建一个新函数,在调用该函数时,将其
this
关键字设置为提供的值,并在调用新函数时提供的任何参数之前设置一个给定的参数序列

正如这里所提到的,
bind()
在调用函数时会将参数前置到函数中,这就是顺序的结束方式。下面是一个例子:

功能测试(参数1、参数2、参数3){
console.log(param1);
console.log(param2);
console.log(param3);
};
//调用'boundFunction'时,'param1'和'param2'将
//分别分配给'1'和'2'
const boundFunction=test.bind(null,1,2);
//在这个场景中,“3”实际上是“param3”`

边界函数(3)