Javascript 咖啡脚本-理解“@&引用;

Javascript 咖啡脚本-理解“@&引用;,javascript,coffeescript,Javascript,Coffeescript,我读过几篇关于咖啡的论文。从他们那里,我是否正确地理解了使用@登录咖啡脚本(以及JavaScript中的这个前缀): 对于变量:使变量成为类实例的成员。每个实例都有自己的此类变量(非静态变量) 对于“方法”:使方法成为静态的,这与它对变量所做的相反 对不起,我是JS和CS的noob。他们的哲学与我习惯的大不相同 更新 以下是我读到的信息的参考资料: 只需在方法中搜索static,@是JavaScript的此并引用当前对象;当前对象取决于方法的调用方式,请参阅和,以了解如何处理方法的@

我读过几篇关于咖啡的论文。从他们那里,我是否正确地理解了使用
@
登录咖啡脚本(以及JavaScript中的
这个
前缀):

  • 对于变量:使变量成为类实例的成员。每个实例都有自己的此类变量(非静态变量)
  • 对于“方法”:使方法成为静态的,这与它对变量所做的相反
对不起,我是JS和CS的noob。他们的哲学与我习惯的大不相同

更新

以下是我读到的信息的参考资料:


只需在方法中搜索
static

@
是JavaScript的
并引用当前对象;当前对象取决于方法的调用方式,请参阅和,以了解如何处理方法的
@
(又称
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.
这将在控制台中为您提供以下输出:

类方法
未定义
11
11
演示:

这些可能也很有趣:


“对于“方法”:将方法设置为静态”-我在任何地方都看不到任何提示。你有什么问题吗?@lanzz:是的,如果问题有点不清楚,很抱歉,但正如原始帖子中所说:“我是否正确理解…”所以你可以只说“是”、“否”或其他关于这个问题的话,例如,类似的事情我误解了这里的单词
static
,这是可能的…完美的答案!这就是我读过的所有报纸都缺少的。