我有以下代码:
class Example
@text = 'Hello world! ;)'
getText = ->
@text
constructor: ->
alert(getText())
### Instance ###
example = new Example
这将返回'undefined',有没有办法让它返回@text
内容?
答案 0 :(得分:2)
这是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