我有一些看起来像
的代码self = @
然后再使用@someMethodName或self.someMethodName
@有一些特殊含义吗?
答案 0 :(得分:60)
@
不是javascript标识符的有效字符。标识符只能包含$
,_
,数字和字母。
在coffeescript中,@
means this
。
CoffeeScript有一些与this关键字相关的不错功能。 首先,CoffeeScript使用@符号作为此的简写.. For 例如,@ foo等同于this.foo。第二,如果你使用@ 函数参数中的符号,CoffeeScript会 自动将这些值指定为对象的属性。
编辑:就jQuery而言,与javascript相同的标识符规则适用,因为jQuery只是javascript。有关jQuery中@
的其他用法,请参阅this question或the docs。
答案 1 :(得分:17)
@
是coffeescript
this
的快捷方式
所以
self = @
是coffeescript:
var self = this;
答案 2 :(得分:1)
自从CoffeeScript的设计已经过去了两年,并且不是CoffeeScript中提出的所有内容都将其纳入ECMA脚本中。建议不要将其用作decorators的快捷方式。