【发布时间】:2016-12-22 16:56:48
【问题描述】:
我使用 p5.js 库制作了一个小沙盒:http://gosuness.free.fr/balls/
我正在尝试实现一种方法来处理侧面的选项,这些选项是使用键盘快捷键切换的。
这是我尝试做的:
var options =
{
Option: function(name, value, shortcut)
{
this.name = name;
this.shortcut = shortcut;
this.value = value;
this.show = function ()
{
var texte = createElement("span",this.name + " : " + this.shortcut + "<br />");
texte.parent("options");
texte.id(this.name);
}
},
toggle: function(shortcut)
{
for (var o in this)
{
console.log(o);
if (o.shortcut == shortcut)
{
o.value = !o.value;
changeSideText("#gravity",gravity);
addText("Toggled gravity");
}
}
}
};
我在对象选项中实例化每个选项:
var gravity = new options.Option("gravity", false,"G");
var paintBackground = new options.Option("paintBackground",false,"P");
当我调用函数 options.toggle 时,console.log(o) 给了我“Option”“toggle”。但我想要的是让for (var o in this) 给我对象选项的属性列表,在这种情况下是重力和paintBackground
我该怎么做?
谢谢!
【问题讨论】:
-
gravity和paintBackground是普通变量,而不是options对象的属性。你为什么认为他们是?
标签: javascript oop object foreach