所以我试图创建一个接受参数的函数,将其转换为数组,然后从数组中选择第一个元素作为事件,然后将其余元素作为参数传递。
示例:
// _ is the underscore module
// emitter = new events.EventEmitter()
function sendToEmitter = function(){
var args = _.toArray(arguments),
event = args[0],
rest = args.slice(1);
emitter.emit(event, rest)
我不确定如何将rest
作为单独的参数传递给侦听器函数。
在python中我可以简单地将它变成一个元组并用*
打包。我不确定JavaScript是否有类似的东西。有没有办法实现这个目标?我相信.apply(也许.call?)会起作用,但我不确定如何将参数应用于监听器。
答案 0 :(得分:1)
基本上,您要做的是将一个数组作为多个参数传递给函数。
您可以使用.apply(thisArg, [argsArray])
。
var args = _.toArray(arguments),
emitter.emit.apply(emitter, args);