我读过几篇关于CoffeeScript OOP的论文。从它们中,我是否正确地理解了在CoffeeScript中使用CoffeeScript符号(在JavaScript中使用this前缀):
我是JS和CS的菜鸟,对不起。他们的哲学与我所习惯的完全不同。
更新
以下是我所读到的信息的参考资料:
只需搜索static。
发布于 2012-06-10 20:40:23
在方法中,@是JavaScript的this,并引用当前对象;当前对象取决于方法的调用方式,请参阅call和apply,以了解如何处理方法的@ (AKA this);您还可以将绑定方法用于CoffeeScript中的对象。
如果您说@p = 11,这与this.p = 11相同,并使p在该对象中可用。
在类定义中,@引用类本身。所以这个:
class C
@m: -> ...定义类方法,您可以使用C.m()来执行它。
考虑一下这个例子:
class C
a: -> @p = 11
b: -> console.log(@p)
@c: -> console.log('Class method')
C.c() // This calls the class method.
o = new C
o.b() // There is no 'o.p' yet.
o.a() // This sets 'o.p'.
o.b() // And now we see an 'o.p'.
console.log(o.p) // And we see o.p here as well.这将使您在控制台中获得以下输出:
Class method
undefined
11
11演示:http://jsfiddle.net/ambiguous/DFcRt/
这些也可能是值得注意的:
https://stackoverflow.com/questions/10972100
复制相似问题