次のコードがあります。
class Example
@text = 'Hello world! ;)'
getText = ->
@text
constructor: ->
alert(getText())
### Instance ###
example = new Example
これは「未定義」を返し@text
ます。コンテンツを返すようにする方法はありますか?
次のコードがあります。
class Example
@text = 'Hello world! ;)'
getText = ->
@text
constructor: ->
alert(getText())
### Instance ###
example = new Example
これは「未定義」を返し@text
ます。コンテンツを返すようにする方法はありますか?
これは、CoffeeScript でよくあるエラーです。コンパイルされた JavaScript を見てください。
Example = (function() {
var getText;
Example.text = 'Hello world! ;)';
getText = function() {
return this.text;
};
function Example() {
alert(getText());
}
return Example;
})();
@
クラス定義で を使用すると、静的メソッドまたは変数が作成されます。つまり、クラス オブジェクトにアタッチされます。
インスタンス変数にしようとしている場合は、コンストラクターで設定します。
constructor: ->
@text = 'Hello world! ;)'
alert(getText())
静的プロパティにアクセスしようとしている場合は、クラス名を参照してください。
getText = ->
Example.text