【发布时间】:2016-01-25 15:17:26
【问题描述】:
我希望将一些 CoffeScript 代码重写为 ECMAScript 2015 (ES6)。
一些语法非常相似,例如粗箭头函数:
(param1, param2, paramN) => expression
ES6 => 和 CoffeeScript => 之间的主要区别是什么?
最好从已经处于相同情况(来回转换箭头功能)的人那里获得提示,并指出要避免的陷阱和错误。
【问题讨论】:
-
我认为咖啡脚本箭头函数是
fat,而不是es6箭头函数:P -
我没用过咖啡脚本箭头功能。但是,关于 es6 箭头函数,需要注意的一点是,它没有
arguments变量。 -
查看那些文档,CoffeeScript 的实现只捕获对
this的引用并将其传递给闭包。 ES6 的实现确保函数没有this,因此使用它的父级词法绑定this。super、arguments和new.target也是如此——CoffeeScript 的粗箭头不会“绑定”这些 -
无论 MDN 怎么说,ES6 中的官方术语都是"arrow function"。 ES6 中没有“细”箭头(与 CoffeeScript 不同)。
-
鉴于咖啡脚本箭头基本上对绑定函数进行了脱糖(即使他们将
bind()调用脱糖到闭包中),这似乎是 What are the differences between ES6 arrow functions and bound functions? 的副本
标签: javascript coffeescript ecmascript-6 arrow-functions