【发布时间】:2013-06-20 02:56:47
【问题描述】:
我无法准确理解 @(this) 在类函数前面的作用。我正在使用 Spine 框架,我得到了一个扩展 Spine.model 的类 Contact。我重写了用于创建、删除、获取等的 Spine 方法,并让它们首先在控制台上打印,如下所示:
create: ->
console.log('create')
super
destroy: ->
console.log("destroy")
super
如果我在前面添加@,其中一些方法将起作用,例如创建,而其他方法如果没有@则不起作用,而其他方法则不能与@一起使用。我覆盖的所有方法都可以在上面的链接中看到。
可以解释一下@符号前面的效果吗 函数,为什么它会导致这种行为?
【问题讨论】:
-
@identifier只是this.identifier。见coffeescript.org/#operators。 -
是的,我理解它在变量前面的使用,只是不知道它在函数前面的作用,以及为什么上面的例子会这样。
-
@Glannis 一些函数是实例方法,而另一些只是局部变量。您能否指出代码中导致混淆的具体示例(编辑问题)?
-
我正在使用的应用程序是 spinjs 框架 spinejs.com/docs/example_contacts 的联系人示例。在这个例子中,fetch 函数需要 @ 来打印。如果添加了 @,destroy 函数不会打印。在每种情况下,应用程序都正常运行,只是打印发生了变化。
标签: coffeescript spine.js