javascript - 继续 JavaScript "classes"- 枚举

标签 javascript class html enums pseudo-class

来自之前的question ,我有以下内容:

所以我已经实现了一个资源类,现在我想继续扩展它并添加我所有的常量和枚举(或者在 JS 允许的范围内......)。

这是我目前拥有的:

var resources = {
  // images
  player  : new c_resource("res/player.png"),
  enemies : new c_resource("res/enemies.png"),
  tilemap : new c_resource("res/tilemap.png")
};

这就是我想继续将其扩展到:

var resources = {
  // images
  player  : new c_resource("res/player.png"),
  enemies : new c_resource("res/enemies.png"),
  tilemap : new c_resource("res/tilemap.png"),

  // enums
  directions : {up:0, right:1, down:2, left:3},
  speeds     : {slow: 1, medium: 3, fast: 5}
};

...

function enemies() {
  this.dir = resources.directions.down; // initialize to down
}

当我尝试访问 resources.directions.up 时,我的 JS 脚本变成了一堆燃烧着的代码。在此上下文中是否允许枚举,如果不允许,我如何正确插入它们以在正常函数之外使用?我也尝试将它们定义为全局的,以达到类似的效果。


编辑:修复了逗号...这只是转录时的一个错误。

当我在 Firefox 中运行它并查看控制台时,我收到一条错误消息,提示 resources is undefined

资源“类”定义在我脚本的顶部,function enemys() 紧随其后……所以据我所知,它应该仍在范围内……

最佳答案

enemies 的调用堆栈是什么?你可以这样做:

var foo = {
  bar: 1,
  f_rv: f()
};

function f() {
  return foo.bar;
}

因为您可以在使用它们的代码“下方”声明函数,所以它会工作一半,但稍后会失败,因为 f() 尝试使用未构造的 foo此刻。

关于javascript - 继续 JavaScript "classes"- 枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4620745/

相关文章:

c# - 如何在 MasterPage 中包含 JavaScript?

html - 关闭 Adob​​e Brackets 中匹配括号的自动完成功能

python - 在 Python 中给一个类起别名

Java Enum 值代表 java.lang 类

c++ - 在成员函数中,错误的函数得到 "executed"

html - 添加填充会使文本区域输入在某些操作系统上不可见

javascript - 如何使用 javascript 或 jquery 添加和删除外部 css

javascript - 输入输入时检查 INSERT 模式是否打开

javascript - 关闭时未执行 jquery 对话框的 beforeclose 回调

javascript - 有什么方法可以使这个 css 在大多数 IE 版本中工作?