首页 > 解决方案 > ReferenceError 引发反应 js 箭头函数

问题描述

我有下面的正常功能。它工作正常。

function getCheck(result, orderBy) {
  return result === 'desc'
    ? (a, b) => compareFunction(a, b, orderBy)
    : (a, b) => -compareFunction(a, b, orderBy);
}

我尝试像下面这样重写,但收到了错误消息:

ReferenceError: a 未定义

function getCheck(result, orderBy) {
  if (result === 'desc') {
    return compareFunction(a, b, orderBy);
  } else if (result === 'asc') {
    return compareFunction(a, b, orderBy);
  } else {
    return 0;
  }
}

如何重写上述函数而不报错?

标签: javascriptreactjs

解决方案


在第一个代码块中,它从函数返回一个新getCheck函数。但是在您重写的代码中,您正在返回执行的结果compareFunction。你不能写没有错误。如果你想compareFunction用 a 和 b 调用,你必须定义它们。

在第一个代码的情况下,您正在重新定义函数,因此您不必声明变量aand b


推荐阅读