javascript - 如何重构使用两次的 JavaScript 函数

标签 javascript function

我有这两个条件

if (civility.labelKey === lady) {
  const contactType = this.contactTypes.find((type) => type.label_key === madam)
  this.onSelect({
    $event: { contactType }
  })
  this.contact.greetings = civility
} else {
  const contactType = this.contactTypes.find((type) => type.label_key === civility.labelKey)
  this.onSelect({
    $event: { contactType }
  })
}

我想分解(统一)这段代码:

this.onSelect({
    $event: { contactType }
  })

谁重复了两次,你有解决办法吗?

最佳答案

您可以提取这样的函数:

function bindOnSelect(component, contactType){
    component.onSelect({
    $event: { contactType }
  })
}

然后调用该函数:

if (civility.labelKey === lady) {
      const contactType = this.contactTypes.find((type) => type.label_key === madam)
      bindOnSelect(this, contactType);
      this.contact.greetings = civility
    } else {
      const contactType = this.contactTypes.find((type) => type.label_key === civility.labelKey)
      bindOnSelect(this, contactType);
    }

关于javascript - 如何重构使用两次的 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43583346/

相关文章:

javascript - CSS 缩放由鼠标悬停或 onclick 触发?

javascript - 如何确定 Camunda Web 应用程序是否在 EE 版本中运行

javascript - react 警告 : Can only update a mounted or mounting component

javascript - 如何禁用 Angular ui-grid 中特定列的调整大小

c++ - 第一次运行循环时如何忽略代码的特定部分?

c - 将指向堆栈分配数组的指针传递给函数

javascript - 如何在javascript中以模块化模式在函数中传递参数

javascript - 在函数之间传递值

javascript - 在 React 中,如何调用另一个组件中的函数?

javascript - JS : Assignment within if statment doesn't work