JavaScript中“ =>”(等于或大于的箭头)的含义是什么?
我知道>=
运算符的含义是大于或等于,但是我已经=>
在一些源代码中看到了。该运算符是什么意思?
这是代码:
promiseTargetFile(fpParams, aSkipPrompt, relatedURI).then(aDialogAccepted => { if (!aDialogAccepted)
return;
saveAsType = fpParams.saveAsType;
file = fpParams.file;
continueSave();
}).then(null, Components.utils.reportError);
回答:
这是什么
箭头函数是ECMAscript
6引入的一种短语法,可以与使用函数表达式的方式类似地使用。换句话说,您经常可以使用它们代替诸如的表达式function (foo)
{...}。但是它们有一些重要的区别。例如,它们不绑定自己的值this
(请参见下面的讨论)。
箭头功能是ECMAscript 6规范的一部分。尚未在所有浏览器中都支持它们,但是在Node v.4.0
+和截至2018年使用的大多数现代浏览器中都部分或完全支持它们。(我在下面提供了部分支持的浏览器列表)。
从Mozilla文档中:
相比箭头函数表达式(也称为脂肪箭头功能)具有更短的语法函数表达式和词法结合
this
值(不结合其自身的this
,arguments
,super
,或new.target
)。箭头功能始终是匿名的。这些函数表达式最适合非方法函数,因此不能用作构造函数。
回答:
上面的文本中隐藏了箭头功能最方便的功能之一:
箭头函数…按词法绑定
this
值(不绑定自己的值this
…)
用更简单的术语表示,箭头功能保留了this
上下文中的值,而没有自己的值this
。传统函数 可以
绑定自己的this
值,这取决于其定义和调用方式。这可能需要大量的体操运动,例如self =
this;等,才能this
从另一个功能内部访问或操作。
范例程式码
示例(同样来自文档):
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]
兼容性说明
您可以在Node中使用箭头功能,但浏览器支持不一。
浏览器对此功能的支持已经改善了很多,但是对于大多数基于浏览器的用法来说,它仍然不够广泛。自2017年12月12日起,当前版本的软件支持:
- Chrome(v。45以上)
- 火狐(v。22+)
- 边缘(12岁以上)
- 歌剧(v。32+)
- Android浏览器(v。47+)
- Opera Mobile(v。33+)
- Chrome for Android(v。47+)
- 适用于Android的Firefox(v。44及更高版本)
- Safari(10岁以上)
- iOS Safari(10.2以上版本)
- 三星互联网(v。5+)
- 百度浏览器(v。7.12+)
不支持:
- IE(通过第11版)
- Opera Mini(通过8.0版)
- 黑莓浏览器(通过第10版)
- IE Mobile(通过第11版)
- 适用于Android的UC浏览器(通过11.4版)
- QQ(通过1.2版)
您可以在CanIUse.com上找到更多(和更多最新信息)(无从属关系)。
以上是 JavaScript中“ =>”(等于或大于的箭头)的含义是什么? 的全部内容, 来源链接: utcz.com/qa/424164.html