有没有办法在JavaScript中命名箭头函数?

有没有办法在JavaScript中命名箭头函数?,javascript,typescript,arrow-functions,Javascript,Typescript,Arrow Functions,我在应用程序中使用箭头函数,有时需要获取函数本身的引用。对于普通的JavaScript函数,我可以直接命名它们并从内部使用名称。对于箭头函数,我当前使用的是参数.callee。是否有一种方法可以命名arrow函数,以便从内部使用引用 示例代码 由于争论可能不会永远存在,我在援助后决定了什么: private evaluateIf(expr: parserModule.IIfExpression, callback: IEnvCallback) { var fn; this.eva

我在应用程序中使用箭头函数,有时需要获取函数本身的引用。对于普通的JavaScript函数,我可以直接命名它们并从内部使用名称。对于箭头函数,我当前使用的是
参数.callee
。是否有一种方法可以命名arrow函数,以便从内部使用引用

示例代码 由于争论可能不会永远存在,我在援助后决定了什么:

private evaluateIf(expr: parserModule.IIfExpression, callback: IEnvCallback) {
    var fn;
    this.evaluate(expr.condition, fn = proceed => {
        guard(fn, [proceed], this);
        if (proceed !== false) this.evaluate(expr.then, callback);
        else if (expr.else) this.evaluate(expr.else, callback);
        else callback(false);
    });
}
是否有一种方法可以命名arrow函数,以便从内部使用引用

除非您将其分配给变量。例如:

var foo = () => {
    console.log(foo);
}
对于arrow函数,我当前使用的是arguments.callee

参数
不受箭头函数支持。TypeScript当前不正确地允许您使用它们。在下一版本的TypeScript中,这将是一个错误


对于您的用例,我只会使用
函数

箭头函数的要点难道不是更简洁地表达匿名函数的方式吗,使用正确的
绑定?所以它们不会有JS等价物的名称。看起来你根本不想要箭头函数,而是一个命名函数表达式。不。实际上,我想使用箭头函数,它们工作得很好。然而,我正在实现一段代码(遵循教程),它要求我将调用函数作为
保护过程的一部分使用。我想知道如何避免使用arguments.callee,同时避免将每个受影响的函数更改为普通javascript函数。命名函数除了需要引用它们外,还可以方便地进行堆栈跟踪。所以我的代码现在可以工作了,因为typescript目前没有将它们转换为es6。既然typescript正在将其转换为纯javascript,有没有办法让它为它生成的函数指定一个名称?我有一些示例代码,因此将编辑问题并添加它,因为它的格式不好。对不起,我不清楚<代码>参数
将是一个错误,无论您针对的是哪个版本(es6、es5、es3)。我已经更新了我的answer@ritcoder我还添加了一个代码示例来解释分配给变量的含义谢谢。我不知道。我想我必须对这些部分使用正规函数。是的。正如在您的代码示例中一样,除了我必须在函数外部声明一个变量来使用它之外,它实际上是有效的,但我没有问题。我已经编辑了问题以显示更新的代码。
var foo = () => {
    console.log(foo);
}