无法更新Object的选定属性。为什么?

时间:2014-02-01 22:33:46

标签: javascript

这是一个有趣的小例子我决定用来练习某些东西,但由于某种原因它没有像我希望的那样工作。我想要的是选择一个stat来更新除了防御和lvl。为此,我总是选择str。我注意到的是,由于某些原因,当我选择它时它不会更新person.str

function levelUp(person){
    var inc = prompt("What stat shall we increase other than defense?");
    console.log(inc);
    console.log(person.inc);
    var lvl = parseInt(person.lvl,10);
    lvl++;
    person.lvl=lvl;
    var def= parseInt(person.def,10);
    def++;
    person.def=def;
    var stat=parseInt(person.inc,10);
    stat++;
    person.inc=stat;

}

var die={
str:10,
def:6,
spd:8,
lvl:1
};
console.log(die.lvl);
console.log(die.str);
console.log(die.def);
levelUp(die);
console.log(die.lvl);
console.log(die.str);
console.log(die.def);

1 个答案:

答案 0 :(得分:4)

person.inc指的是inc的{​​{1}}字段,该字段不存在。

您应该使用person代替。