javascript - 构建 Coffeescript 并使用 @ 关键字

标签 javascript coffeescript this project-structuring

这可能是非常基本的东西,但我卡住了,有点无能为力。

我最近用 CoffeeScript 写了一个贪吃蛇游戏,但我对自己的方式一点也不满意 structured the code .

我正在尝试使用类重写它。我有一个 Game 类,一个 Snake 类,一个 Food 类。在我看来这样做是有道理的。但是,为了访问变量和函数,我使用了“@”(this) 关键字,我觉得我完全过头了。例如,我的 Game 类顶部有一个常量列表。我必须将它们全部声明为 @CONSTANT 才能访问它们。或者,在方法内部:

clearCanvas: ->
    @ctx.clearRect 0, 0, @canvas.width, @canvas.height

方法调用也是如此。例如:

init: ->
    window.snake = new Snake()
    @showStartScreen()

有人可以告诉我这样做是否可行,或者我应该如何构建我的代码?我可以链接到我目前正在使用的代码,如果有人愿意为我审查它的话。 (编辑:实际上 here it is )

非常感谢。

最佳答案

如果您正在使用 CoffeeScript 类,您将大量使用 @。对象的任何属性都必须通过 @this 访问。以下是您应该如何使用常量:

class Game
  up:     1
  right:  2
  down:   4
  left:   8

  someMethod: ->
    console.log @up, @right, @down, @left

console.log "Class accessible #{Game::up}"

g = new Game
console.log "Object accessinble #{g.up}"

g.someMethod()

此外,@thejh 是对的。您应该使用 2 个空格宽度的软制表符。

关于javascript - 构建 Coffeescript 并使用 @ 关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8262439/

相关文章:

java - 将句柄传递给 java 中的子类时,我应该使用声明还是 this() ?

c++ - C++ 中 decltype(this) 的类型是什么?

javascript - 调用不带参数的函数

javascript - Asp.net - 使用 Javascript 结果作为参数调用 Asp.Net 函数

windows - 无法在 Windows XP 上使用 npm 安装 CoffeeScript

javascript - 乘以从API检索的变量

c++ - 初始化器中的 this 关键字用于歧义解决

javascript - Jquery - 如果元素的值为 "Active"则运行函数

javascript - 将 php 变量传递并更新为 javascript

android - JS代码部署在Web上