Does the '@' symbol have special meaning in Javascript, Coffeescript or Jquery?
Since the design of CoffeeScript a couple of years have passed and not everything which was proposed in CoffeeScript made it into ECMA script. Instead of being used as a shortcut for this
, it's proposed to be used for decorators.
@
is not a valid character for a javascript identifier. Identifiers may only contain $
, _
, digits and letters.
In coffeescript, @
means this
.
CoffeeScript has a few nice features related to the this keyword. First, CoffeeScript uses the @ symbol as shorthand for this.. For example, @foo is equivalent to this.foo. Second, if you use the @ symbol in the parameters of a function, CoffeeScript will automatically assign those values as properties of the object.
Edit: As far as jQuery is concerned, the same identifier rules as javascript apply since jQuery is just javascript. For other uses of @
in jQuery, see this question or the docs.
@
is shortcut for this
in coffeescript
So
self = @
is coffeescript for:
var self = this;