【发布时间】:2012-02-10 13:34:20
【问题描述】:
我正在制作一个 javascript 游戏,具有多个级别,存储在 json 中。 加载时,我运行一个函数来“解析”关卡对象,方法是用默认值替换不存在的值,或者用对象替换一些值,例如:
//i is the variable I use to loop through the enemies
if (typeof(level.enemies[i].life)=="undefined") {
level.enemies[i].life=100;
}
if (typeof(level.enemies[i].follow)=="number") {
level.enemies[i].follow=level.enemies[level.enemies[i].follow];
// replace the number of the enemy,
// by a reference to the actual enemy.
}
问题是我在整个函数中有很多与这些类似的“ifs”,我想知道是否可以以某种方式将它们简化为一个函数,以便我可以这样做:
replaceByType(level.enemies[i].life,"undefined",100);
replaceByType(level.enemies[i].follow,"number",level.enemies[level.enemies[i].follow]);
遗憾的是,我不知道该怎么做,因为它们无法通过引用传递变量(对象除外)。也许还有另一种方法可以简化我的代码?
【问题讨论】:
标签: javascript function pass-by-reference