Ich habe einen Code, der so aussieht
self = @
und später wird es verwendet @someMethodName
oder self.someMethodName
Tut @
eine besondere Bedeutung haben?
Noah Clark
Ich habe einen Code, der so aussieht
self = @
und später wird es verwendet @someMethodName
oder self.someMethodName
Tut @
eine besondere Bedeutung haben?
jbaby
@
ist kein gültiges Zeichen für eine Javascript-ID. Kennungen dürfen nur enthalten $
, _
Ziffern und Buchstaben.
In Kaffeeschrift, @
meint this
.
CoffeeScript hat ein paar nette Funktionen im Zusammenhang mit diesem Schlüsselwort. Erstens verwendet CoffeeScript dafür das @-Symbol als Abkürzung. Zum Beispiel entspricht @foo this.foo. Zweitens, wenn Sie das @-Symbol in den Parametern einer Funktion verwenden, weist CoffeeScript diese Werte automatisch als Eigenschaften des Objekts zu.
Bearbeiten: Für jQuery gelten die gleichen Bezeichnerregeln wie für Javascript, da jQuery nur Javascript ist. Für andere Verwendungen von @
in jQuery, siehe diese Frage oder die Dokumente.
Es lohnt sich, das hinzuzufügen @foo
meint this.foo
im CoffeeScript.
– Trevor Burnham
3. Januar 2013 um 18:47 Uhr
Auch das kann erwähnenswert sein =>
ist ziemlich verwirrend, wenn Sie versuchen, das CoffeeScript eines anderen zu lesen, imho.
– cwharris
3. Januar 2013 um 19:42 Uhr
@
ist Abkürzung für this
in Kaffeeschrift
So
self = @
ist coffeescript für:
var self = this;
was heutzutage sicherheitshalber sein sollte const self = @
😉
– Graufuchs
12. April 2017 um 9:15 Uhr
Seit dem Design von CoffeeScript sind ein paar Jahre vergangen und nicht alles, was in CoffeeScript vorgeschlagen wurde, hat es in ECMA-Skript geschafft. Anstatt als Abkürzung für verwendet zu werden this
es wird vorgeschlagen, für verwendet zu werden Dekorateure.
Existiert dieses Symbol in jquery?
– Eli
3. Januar 2013 um 16:38 Uhr
sooo … ist es eine Javascript-Datei oder eine Coffeescript-Datei?
– DEZA
3. Januar 2013 um 16:39 Uhr
@SDC Es ist eine Coffeescript-Datei, aber vermutlich könnten Sie diese verwenden, wenn Javascript sie definiert hätte.
– Noah Clark
3. Januar 2013 um 16:41 Uhr
Siehe stackoverflow.com/a/9337047/717267
– Eduardo Cuomo
11. April 2017 um 18:00 Uhr