I have some code that looks like
self = @
and then later on it's using @someMethodName
or self.someMethodName
Does @
have some special meaning?
I have some code that looks like
self = @
and then later on it's using @someMethodName
or self.someMethodName
Does @
have some special meaning?
@
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.
@foo
means this.foo
in CoffeeScript. –
Deluna =>
is pretty freaking confusing when you're trying to read someone else's CoffeeScript, imho. –
Olympus @
is shortcut for this
in coffeescript
So
self = @
is coffeescript for:
var self = this;
const self = @
;) –
Duke 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.
© 2022 - 2024 — McMap. All rights reserved.