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

“=>”(由等号组成的箭头)是什么意思

文国发
2023-03-14

我知道<代码>

代码如下:

js prettyprint-override">promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => {
    if (!aDialogAccepted)
        return;

    saveAsType = fpParams.saveAsType;
    file = fpParams.file;

    continueSave();
}).then(null, Components.utils.reportError);

共有3个答案

白通
2023-03-14

也称为胖箭头函数。它们是编写函数表达式的一种干净而简洁的方法,例如function(){}

箭头函数可以在定义函数时取消对函数返回{}的需要。它们是一行,类似于Java或Python中的Lambda表达式。

const queue = ['Dave', 'Sarah', 'Sharon'];
const nextCustomer = () => queue[0];

console.log(nextCustomer()); // 'Dave'
微生旻
2023-03-14

这被称为箭头函数,是ECMAScript 2015规范的一部分...

var foo = ['a', 'ab', 'abc'];

var bar = foo.map(f => f.length);

console.log(bar); // 1,2,3
韦熙云
2023-03-14

这是一个箭头函数。箭头函数是ECMAscript 6引入的一种简短语法,其使用方式与函数表达式的使用方式类似。换句话说,您可以经常使用它们来代替function(foo){…} 。但它们有一些重要的区别。例如,它们不绑定自己的值this(有关讨论,请参见下文)。

箭头函数是ECMAscript 6规范的一部分。它们尚未在所有浏览器中得到支持,但在Node v.4.0和2018年使用的大多数现代浏览器中部分或完全得到支持。(我在下面列出了部分支持浏览器的列表)。

您可以阅读更多关于箭头函数的Mozilla留档。

从Mozilla文档中:

与函数表达式相比,箭头函数表达式(也称为胖箭头函数)具有更短的语法,并在词汇上绑定this值(不绑定自己的this参数supernew.target)。箭头函数总是匿名的。这些函数表达式最适合于非方法函数,它们不能用作构造函数

箭头函数最方便的功能之一隐藏在上面的文本中:

一个箭头函数。。。按词汇绑定值(不绑定自己的…)

更简单地说,这意味着箭头函数从其上下文中保留了this值,并且没有自己的this。传统函数可以绑定它自己的this值,这取决于它的定义和调用方式。这可能需要大量的体操,如Self=this;等。,从一个函数中访问或操作另一个函数中的this。有关此主题的更多信息,请参阅Mozilla留档中的解释和示例。

示例(也来自文档):

var a = [
  "We're up all night 'til the sun",
  "We're up all night to get some",
  "We're up all night for good fun",
  "We're up all night to get lucky"
];

// These two assignments are equivalent:

// Old-school:
var a2 = a.map(function(s){ return s.length });

// ECMAscript 6 using arrow functions
var a3 = a.map( s => s.length );

// both a2 and a3 will be equal to [31, 30, 31, 31]

您可以在节点中使用箭头函数,但浏览器支持参差不齐。

浏览器对该功能的支持已经有了很大的改进,但对于大多数基于浏览器的使用来说,它仍然不够广泛。截至2017年12月12日,当前版本的支持:

  • Chrome(45节)
  • 火狐(22节)
  • 边缘(12节)
  • 歌剧(32节)
  • Android浏览器(47节)
  • 歌剧流动(33)
  • Android的Chrome(47节)
  • Firefox for Android(44节)
  • Safari(10节)
  • iOSSafari(v.10.2)
  • 三星互联网(5节)
  • 百度浏览器(v.7.12)

在以下情况下不受支持:

  • IE(通过第11节)
  • Opera Mini(通过8.0版)
  • 黑莓浏览器(通过第10节)
  • IE Mobile(通过第11节)
  • AndroidUC浏览器(通过11.4版)
  • QQ(通过1.2版)

您可以在CanIUse.com(无从属关系)找到更多(和更多最新)信息。

 类似资料:
  • 问题内容: 我正在尝试运行一些Android测试,但是,编译器抱怨存在多个dex文件。 所以我试图过滤重复的依赖项: 但是我得到以下输出: 我对箭头(->)的含义感到困惑。他们的意思是什么? 问题答案: 这意味着,依赖图包含相同的多个依赖和而不同的版本如。Gradle尝试自动解决冲突的版本- 默认情况下,选择最新版本。左侧是请求的版本,右侧是将要选择的版本。在这里可以找到类似的问题。

  • 我偶然发现了这个代码。我一直在使用{}格式的箭头函数,这个()包装器是什么意思?

  • 我正在阅读ScrollListView的源代码,在一些地方我看到了的用法。 88号线。 这是的缩写吗?如果有什么不同,又是怎么回事?

  • 问题内容: 这个问题已经在这里有了答案 : ->在Python函数定义中是什么意思? (8个答案) 2年前关闭。 python方法的末尾有一个或破折号-大于符号,我不确定它的含义。人们可能也称它为箭头。 这是示例: Foo的实例在哪里。 我的猜测是,它是某种静态类型声明,以告诉解释器其类型为Foo。但是当我对此进行测试时,如果不是Foo的实例,则不会发生任何异常情况。另外,如果类型不是Foo,则假

  • 问题内容: 操作数是什么意思,更具体地说是Python? 有人可以解释如何阅读此代码段吗? 问题答案: 更新的答案 在问题的上下文中,我们正在处理伪代码,但是从Python 3.8开始 ,它实际上是一个有效的运算符,它允许在表达式中分配变量: 有关更多详细信息,请参见PEP 572。 原始答案 您发现的是 伪代码 伪代码 是计算机程序或其他算法的工作原理的非正式高级描述。 实际上是赋值运算符。在P

  • 我见过这样的JavaScript代码: 在这个实例中,包裹对象的括号指的是什么?它是的缩写吗?