CoffeeScript,=>和->有什么区别?

6

我是新手,正在学习CoffeeScript。今天遇到了这个问题。

example -> 
 a ->

and

example ->
 b =>

细箭头和粗箭头之间有什么区别?

有人能解释一下它们的区别以及何时应该使用它们吗?


这个问题似乎不适合讨论,因为它涉及到未阅读文档的情况。 - rlemon
@ rlemon 我觉得这不是离题,我在阅读文档时并没有理解。 - Tyler
@Tyler ==> 在这里:http://coffeescript.org/#fat-arrow - Naftali
1个回答

12

胖箭头符号=>定义一个绑定到当前this值的函数。

这对于回调非常方便。

注意生成的差异。

CoffeeScript:

foo = () -> this.x + this.x;
bar = () => this.x + this.x;

JavaScript

var bar, foo,
  _this = this;

foo = function() {
  return this.x + this.x;
};

bar = function() {
  return _this.x + _this.x;
};

2
这两者之间有什么区别:_this 和 this? - Tyler
@Tyler,_this只是一个变量名。this是一种语言关键字(在JS中,类似于CS中的@)。 - Benjamin Gruenbaum
好的,我知道这是什么意思,只是对于“this”不太清楚。 - Tyler
1
@Tyler - JavaScript 将事件和函数绑定到调用者,因此 this 可能不是您的对象。 - Daniel A. White

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接