40

私は次のようなコードを持っています

self = @

その後、@someMethodNameまたはを使用していますself.someMethodName

@特別な意味はありますか?

4

3 に答える 3

68

@javascript識別子の有効な文字ではありません。識別子には、、、数字、文字のみを含めることができ$ます_

Coffeescriptでは、@を意味しthisます。

CoffeeScriptには、このキーワードに関連するいくつかの優れた機能があります。まず、CoffeeScriptはこれの省略形として@記号を使用します。たとえば、@fooはthis.fooと同等です。次に、関数のパラメーターで@記号を使用すると、CoffeeScriptはそれらの値をオブジェクトのプロパティとして自動的に割り当てます。

編集:jQueryに関する限り、jQueryは単なるjavascriptであるため、javascriptと同じ識別子ルールが適用されます。@jQueryでの他の使用法については、この質問またはドキュメントを参照してください。

于 2013-01-03T16:40:13.700 に答える
22

@thisCoffeescriptのショートカットです

それで

self = @

のコーヒースクリプトです:

var self = this;
于 2013-01-03T16:40:20.257 に答える
1

CoffeeScriptの設計から数年が経過し、CoffeeScriptで提案されたすべてがECMAスクリプトに組み込まれたわけではありません。のショートカットとして使用する代わりに、デコレータthisに使用することを提案します。

于 2020-07-02T14:31:43.057 に答える