当前位置: 首页 > 知识库问答 >
问题:

如何在ES2015中编写命名箭头函数?

裴华荣
2023-03-14

我有一个函数,我正在尝试转换为ES6中的新箭头语法。它是一个命名函数:

function sayHello(name) {
    console.log(name + ' says hello');
}

有没有办法给它一个没有var语句的名字:

var sayHello = (name) => {
    console.log(name + ' says hello');
}

显然,我只能在定义了这个函数之后才能使用它。大致如下:

sayHello = (name) => {
        console.log(name + ' says hello');
    }

在ES6中有没有一种新的方法可以做到这一点?

共有3个答案

祁绪
2023-03-14

如果说“命名”,你的意思是你想要。要设置的箭头函数的name属性,您很幸运。

如果在赋值表达式的右侧定义了一个箭头函数,引擎将取左侧的名称,并使用它来设置箭头函数的. name,例如:

var sayHello = (name) => {
    console.log(name + ' says hello');
}

sayHello.name //=== 'sayHello'

话虽如此,你的问题似乎更多的是“我能得到一个箭头功能来提升吗?”。恐怕这个问题的答案是一个大大的“不”。

孙渝
2023-03-14

不是。箭头语法是匿名函数的缩写。匿名函数是匿名的。

命名函数用函数关键字定义

梁兴修
2023-03-14

如何在ES2015中编写命名箭头函数?

按照问题中排除的方式执行:将其放在赋值或属性初始值设定项的右侧,JavaScript引擎可以合理地将变量或属性名称用作名称。没有其他方法可以做到这一点,但这样做是正确的,并且完全包含在规范中。

根据规范,此函数具有真实名称,sayHello

var sayHello = name => {
    console.log(name + ' says hello');
};

这在赋值运算符中定义

类似地,运行时语义:PropertyDefinitionEvaluation调用SetFunctionName,从而为该函数提供了一个真实名称:

let o = {
    sayHello: name => {
        console.log(`${name} says hello`);
    }
};

现代引擎已经为这样的语句设置了函数的内部名称;Edge仍然有一个位,使其在运行时标志后面的函数实例上可用作name

例如,在Chrome或Firefox中,打开web控制台,然后运行以下代码段:

"use strict";
let foo = () => { throw new Error(); };
console.log("foo.name is: " + foo.name);
try {
  foo();
} catch (e) {
  console.log(e.stack);
}
 类似资料:
  • 问题内容: 我有一个函数要转换为 ES6中 的新箭头语法。它是一个命名函数: 有没有办法在不使用var语句的情况下为其命名: 显然,我只能在定义此功能后使用它。如下所示: ES6中 是否有新方法可以做到这一点? 问题答案: 如何在ES2015中编写命名箭头功能? 您可以按照在问题中排除的方式进行操作:将其放在赋值或属性初始化程序的右侧,在该赋值或属性初始化程序中,JavaScript引擎可以合理地

  • 目前,我有这个代码: 为了使其与代码库的其余部分保持一致,我想将其更改为箭头函数。我尝试了

  • 不鼓励将箭头函数(“lambdas”)传递给 Mocha。Lambdas词法绑定 this,无法访问 Mocha 上下文。例如,以下代码将失败: describe('my suite', () => { it('my test', () => { // should set the timeout of this test to 1000 ms; instead will fail thi

  • ES6标准新增了一种新的函数:Arrow Function(箭头函数)。 为什么叫Arrow Function?因为它的定义用的就是一个箭头: x => x * x 上面的箭头函数相当于: function (x) { return x * x; } 在继续学习箭头函数之前,请测试你的浏览器是否支持ES6的Arrow Function: 'use strict'; ---- var f

  • 我想知道是否有人能解释一下:

  • 本文向大家介绍如何用箭头函数获取arguments相关面试题,主要包含被问及如何用箭头函数获取arguments时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 可用…rest参数获取