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
,这是可能的…完美的答案!这就是我读过的所有报纸都缺少的。