【问题标题】:How to append arguments to functions as you pass them along in Javascript在 Javascript 中传递参数时如何将参数附加到函数
【发布时间】:2019-06-14 03:15:00
【问题描述】:

这必须以前已经回答过,但我找不到答案,也许我没有正确搜索它。如果是重复的,请告诉我。

在节点中,我发出这样的事件:

EventEmitter.emit('eventname', params)

足够简单。我就是这样听的

EventEmitter.on('eventname', doSomething)

然后我有我的监听函数doSomething

doSomething(params){
    // Do cool stuff
}

我想将 eventEmitter 类附加到参数中,这样我就可以在 doSomething 中的逻辑完成后发出额外的事件。我可以这样做:

EventEmitter.on('eventname', params => {
    doSomething(params, EventEmitter)
})

但我想把它全部放在一条线上。它更具可读性,并且更容易扫描文件以查看事件和操作。有什么方法可以做到这一点?

谢谢。

【问题讨论】:

  • 如果您只想将所有内容保持在一行中,您可以删除花括号:EventEmitter.on('eventname', params => doSomething(params, EventEmitter));。虽然没有看到传递 EventEmitter 类的意义......
  • 这是我认为您可以做到的唯一方法。为了使其更紧凑,您可以使用 es6 箭头符号函数 (params)=>doSomething(params, EventEmitter) 或使用 function.bind。但是你可能必须让 EventEmitter 成为你函数中的第一个参数。

标签: javascript function arguments chaining


【解决方案1】:

你可以做的就是将函数分配给变量,这样更容易调用它们

类似

EventEmitter.emit('eventname', params)
doSomething(params){
  // Do cool stuff 
}
const anotherEvent = EventEmitter.on('anothereventname', 'anotherparams')
EventEmitter.on('eventname', params => {
  doSomething(params, anotherEvent)
})

然后你调用 place the emit 到任何你想要的地方

【讨论】:

  • 传递 EventEmitter 类可以根据需要进行工作,我特指将代码保持在一行的格式。不过还是谢谢。
猜你喜欢
  • 2013-06-03
  • 1970-01-01
  • 2015-07-19
  • 2016-04-26
  • 2017-06-19
  • 1970-01-01
  • 1970-01-01
  • 2014-01-27
  • 2023-03-19
相关资源
最近更新 更多