我有一些看起来像的代码
self = @
然后稍后它正在使用@someMethodName
或self.someMethodName
@
有什么特殊含义吗?
我有一些看起来像的代码
self = @
然后稍后它正在使用@someMethodName
或self.someMethodName
@
有什么特殊含义吗?
@
不是 javascript 标识符的有效字符。标识符只能包含$
, _
, 数字和字母。
在咖啡脚本中,@
表示this
.
CoffeeScript 有一些与 this 关键字相关的不错的特性。首先,CoffeeScript 使用 @ 符号作为 this.. 的简写。例如,@foo 等价于 this.foo。其次,如果您在函数的参数中使用 @ 符号,CoffeeScript 会自动将这些值分配为对象的属性。
编辑:就 jQuery 而言,与 javascript 相同的标识符规则适用,因为 jQuery 只是 javascript。对于@
jQuery 中的其他用途,请参阅此问题或文档。
@
this
是咖啡脚本中的快捷方式
所以
self = @
是咖啡脚本:
var self = this;
自从 CoffeeScript 的设计已经过去了几年,CoffeeScript 中提出的所有内容并没有成为 ECMA 脚本。this
建议将其用于装饰器,而不是用作 的快捷方式。