CoffeeScriptで書かれたjQueryプラグインを読んでいるのですが、@の記述がよくわかりません。下記のような使われ方をしているのですが、これは何を表しているのでしょうか。
self = @
また、@はJavascript、jQueryにおいてどんな意味を持ちますか?
本で探しても@に関する記述がなく困っています。
CoffeeScriptで書かれたjQueryプラグインを読んでいるのですが、@の記述がよくわかりません。下記のような使われ方をしているのですが、これは何を表しているのでしょうか。
self = @
また、@はJavascript、jQueryにおいてどんな意味を持ちますか?
本で探しても@に関する記述がなく困っています。
JavaScriptは何処から呼び出したかによって同じ文脈でもthisの意味が変化します。
CoffeeScriptでは@を使う事でthisのタイプ数を減らす以外にもかっこいい使い方が出来ます。
例えばこんなことしたい場合です。
hoge = function() {
var foo;
this.piko = 123
foo = function() {
return this.piko
}
}
この時上で宣言したpikoプロパティ
はfoo関数
の中では使う事が出来ません。
どうしても使いたい場合は、少々小細工が必要になります。
hoge = function() {
var self = this;
var foo;
this.piko = 123;
foo = function() {
return self.piko
}
};
コレを実現する為にCoffeeScriptで書くとこうなります。
hoge = ->
@piko = 123
foo = =>
@piko
この時thisを無名関数の中に持って入りたい時は、
=>
で関数定義するだけで2つ目のような迂回するJavaScriptを生成することが出来ます。
(これは似たような仕様がES6で採用されたかと思います)