Javascript 如何将数字添加到对象中的属性?

Javascript 如何将数字添加到对象中的属性?,javascript,function,object,add,Javascript,Function,Object,Add,我有一个这样的物体: var statistics = { won: 0, tie: 0, lost: 0 }; 我有一个函数,可将1添加到won: var plus1 = function() { return statistics.won++; } 我在if/else语句中调用该函数,如下所示: plus1(); 但它不起作用。有人有想法吗?可能是x++返回x而不是x+1。 你在找什么 var plus1 = function() { retur

我有一个这样的物体:

var statistics = {
    won: 0,
    tie: 0,
    lost: 0
};
我有一个函数,可将1添加到
won

var plus1 = function() {
    return statistics.won++;
}
我在if/else语句中调用该函数,如下所示:

plus1();

但它不起作用。有人有想法吗?

可能是x++返回x而不是x+1。 你在找什么

var plus1 = function() {
    return ++statistics.won;
}

可能是x++返回x而不是x+1。 你在找什么

var plus1 = function() {
    return ++statistics.won;
}

看看你的代码,我真的不明白为什么你会返回结果

我会将函数重写为

function plus1() {
  statistics.won++;
}
当涉及到更新它时,我看不到您的代码中有任何实际更新html的地方。在运行plus1()之后。如果我在控制台中运行console.log(statistics),我可以看到每当我赢了,statistic.won就会上升


正如上面的评论中已经提到的,如果在运行plus1()之后运行wins(),那么一切都会正常。

查看您的代码,我真的看不出返回结果的任何原因

我会将函数重写为

function plus1() {
  statistics.won++;
}
当涉及到更新它时,我看不到您的代码中有任何实际更新html的地方。在运行plus1()之后。如果我在控制台中运行console.log(statistics),我可以看到每当我赢了,statistic.won就会上升


正如上面的评论中所提到的,如果在运行plus1()之后运行wins(),则所有操作都会正常进行。

这是由于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
值,然后将其递增


因此,正如我在评论中提到的,
return++statistics.won
是您需要的解决方案。

这是由于在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
值,然后将其递增



因此,正如我在评论中提到的,
return++statistics.won
是您需要的解决方案。

在您试图访问它的点上是否可以看到
统计信息?你的浏览器控制台没有显示任何错误吗?“它不工作”-为什么?有错误吗?浏览器控制台中没有错误。那么,发生了什么?什么不起作用?
return++statistics.won?在您试图访问统计信息时,
统计信息是否可见?你的浏览器控制台没有显示任何错误吗?“它不工作”-为什么?有错误吗?浏览器控制台中没有错误。那么,发生了什么?什么不起作用?
return++statistics.won?嗯@Andy,你应该回答而不是评论。公平地说:我以前没有看到你的评论。不幸的是,这仍然不起作用。问题出在别的地方。我的网站是:ivoklerk.com/rpslspromaybe尝试在plus1()之后调用wins()。@J.Beyer:是的,这就是问题所在。嗯@Andy,你应该给出答案,而不是评论。公平地说:我以前没有看到你的评论。不幸的是,这仍然不起作用。问题出在别的地方。我的网站是:ivoklerk.com/rpslspromaybe尝试在plus1()之后调用wins()。@J.Beyer:是的,这就是问题所在。wins();在plus1()下;在我的代码中。。如何更新html?只要运行plus1();您需要再次运行wins()。所以改变
plus1()进入
plus1();胜利()或只添加
wins()
plus1
函数。如果您觉得问题已经回答,您可能希望将其标记为已回答。wins();在plus1()下;在我的代码中。。如何更新html?只要运行plus1();您需要再次运行wins()。所以改变
plus1()进入
plus1();胜利()或只添加
wins()
plus1
函数。如果您觉得问题已经回答,您可能希望将其标记为已回答。