40

我有一些看起来像的代码

self = @

然后稍后它正在使用@someMethodNameself.someMethodName

@有什么特殊含义吗?

4

3 回答 3

68

@不是 javascript 标识符的有效字符。标识符只能包含$, _, 数字和字母。

在咖啡脚本中,@表示this.

CoffeeScript 有一些与 this 关键字相关的不错的特性。首先,CoffeeScript 使用 @ 符号作为 this.. 的简写。例如,@foo 等价于 this.foo。其次,如果您在函数的参数中使用 @ 符号,CoffeeScript 会自动将这些值分配为对象的属性。

编辑:就 jQuery 而言,与 javascript 相同的标识符规则适用,因为 jQuery 只是 javascript。对于@jQuery 中的其他用途,请参阅此问题文档

于 2013-01-03T16:40:13.700 回答
22

@this是咖啡脚本中的快捷方式

所以

self = @

是咖啡脚本:

var self = this;
于 2013-01-03T16:40:20.257 回答
1

自从 CoffeeScript 的设计已经过去了几年,CoffeeScript 中提出的所有内容并没有成为 ECMA 脚本。this建议将其用于装饰器,而不是用作 的快捷方式。

于 2020-07-02T14:31:43.057 回答