我有一个这样的对象:
var statistics = {
won: 0,
tie: 0,
lost: 0
};
我有一个向won
添加1的函数:
var plus1 = function() {
return statistics.won++;
}
我在if / else语句中调用该函数,如下所示:
plus1();
但它不起作用。有没有人有想法?
答案 0 :(得分:4)
可能x ++返回x而不是x + 1。 您正在寻找
var plus1 = function() {
return ++statistics.won;
}
答案 1 :(得分:1)
查看您的代码,我真的没有理由告诉您返回结果的原因。
我会将函数重写为
function plus1() {
statistics.won++;
}
在更新时,我无法在您的代码中看到实际更新html的内容。在你运行plus1()之后。如果我在我的控制台中运行console.log(统计数据),我可以看到,只要我赢了,statistic.won就会上升。
正如上面评论中已经提到的,如果你在运行plus1()之后运行wins(),它将全部有用。
答案 2 :(得分:0)
这是由于JavaScript中的前/后递增方式:
var one = 1;
var two = 1;
// increment `one` FIRST and THEN assign it to `three`.
var three = ++one;
// assign `two` to `four`, THEN increment it
var four = two++;
因此,在您的代码中,您首先将statistics.won
的值分配给return
值然后递增它。 You can see the difference in how they work here
因此,正如我在评论中提到的,return ++statistics.won;
是您需要的解决方案。