目前我可以做:
function addStat() {
player.str = player.str + 1;
}
但我希望能够对播放器对象使用除“ str”以外的其他功能。所以我决定做这样的事情:
function addStat(stat) {
player.stat = player.stat + 1;
}
但这似乎不起作用,我尝试查找使用参数的语法,但找不到与我所需方式类似的东西。
我了解了“ this”,但无法使其与我的功能配合使用。
我是这样想的:
function addStat(thing, stat) {
thing.stat = thing.stat + 1;
statReset();
}
会工作,但我知道为什么不行。我确保其余的javascript和html都可以正常工作,并且当我添加这些功能时,一切都没有中断,只是不起作用。
最佳答案
在为变量分配属性时,需要使用括号符号,而不是点符号。然后,这看起来像:
function addStat(stat) {
(stat in player) ? ++player[stat] : player[stat] = 1;
}
由于评论(我不同意),我想我应该提到的是,由于您正在尝试修改可能不存在的属性,因此还应该添加安全检查以查看是否可以对其进行修改。
否则,您将修改
undefined
,这将导致不希望的输出。关于javascript - 使用带有Javascript对象的参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28482123/