我可以在生成器中使用ES6的箭头函数语法吗?(箭头表示法)
也就是说,我如何表达
function *(next) {}
使用箭头语法?我已经尝试了所有我能想到的组合,但我找不到任何关于它的文档。
(我目前正在使用Node.js v0.11.14。
也就是说,我如何表达
function *(next) {}
使用箭头语法?我已经尝试了所有我能想到的组合,但我找不到任何关于它的文档。
(我目前正在使用Node.js v0.11.14。
首先,Arrow函数不是用来取代内联函数的,它们是不同的。内联函数只是函数,所以问题是箭头函数和内联函数之间的区别是什么。() => {}
function(){}
与函数表达式相比,箭头函数表达式(也称为箭头函数)具有较短的语法,并且不绑定自己的 、 、 或 )。箭头函数始终是匿名的。
this
arguments
super
new.target
更多快速详细信息,请单击此处
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions
使用收益率关键字
yield 关键字不能在箭头函数的主体中使用(除非允许在进一步嵌套在其中的函数中使用)。因此,箭头函数不能用作生成器。
请注意,没有生成器是没有意义的。yield
http://tc39wiki.calculist.org/es6/arrow-functions/
箭头函数按词法绑定,在 Block 正文情况下绑定,以便它从立即封闭的箭头函数返回,并排除和引用立即封闭箭头函数之外的语句。
this
return
break
continue
标识符主表达式不能在箭头函数的主体(无论是表达式还是块形式)中使用。
arguments
同样,不能在箭头函数的主体中使用。箭头不能成为生成器,我们不希望深度延续。
yield
箭头函数中的 yield 将引发语义错误:http://www.ecma-international.org/
最后,原因在于 ECMA6 的实施非常复杂。出于类似的原因,C#也不允许这样做。