Javascript Node.js侦听动态创建的对象上的事件

Javascript Node.js侦听动态创建的对象上的事件,javascript,node.js,events,Javascript,Node.js,Events,我有一个Node.JS应用程序,它可以根据数据库中存储的信息动态创建记录对象,记录的每个实例都会发出事件,我想听听它们。 事情是这样的: db.getRecords(function(group){ for (var i = 0; i < group.length; i++) { var record = new Record(JSON.parse(group[i].list),group[i].id,group[i].time); record.s

我有一个Node.JS应用程序,它可以根据数据库中存储的信息动态创建记录对象,记录的每个实例都会发出事件,我想听听它们。 事情是这样的:

db.getRecords(function(group){
    for (var i = 0; i < group.length; i++) {
        var record = new Record(JSON.parse(group[i].list),group[i].id,group[i].time);
        record.setup();
        record.on('dropped',function(){
            db.deleteRecord(record.id);
        });
    }
});
db.getRecords(函数(组){
对于(变量i=0;i
上面的代码将始终侦听上次创建的对象发出的事件。。。这是有道理的,但我不知道如何聆听我所有的录音对象,并对它们发出的伊凡特作出反应。感谢您的帮助/建议

当前代码正在侦听所有记录生成的事件。但是,在所有情况下,
db.deleteRecord
都将被调用,其中包含循环所覆盖的最后一条记录的id。以特定实例为例,第一条记录的事件处理程序将使用最后一条记录的id调用
db.deleteRecord

要解决此问题,您可以执行以下操作:

record.on('dropped',function(id){
    db.deleteRecord(id);
}.bind(undefined, record.id));
这将强制将传递给回调的
id
设置为调用bind时
record.id
具有的值。(在匿名函数中,
bind
的第一个参数将
this
设置为
undefined
。)