如何通过引用递增变量?

How to increment variable by reference?

如何通过引用递增变量:

 let sum = 0;
    this.rows.forEach(model => {
      sum += model.hours;
    });
    return sum;

我需要做这件事:

this.rows.forEach(model => {
   let &sum += model.hours;
});

你不能……至少不能直接。在 JavaScript.

中,基元始终按值传递

如果你需要做这样的事情,你可以将它包装在一个对象中(通过引用传递)。

const a = () => {
  const sum = { value: 0 };
  b(sum);
  console.log(sum.value);
};

const b = (sum) => {
  sum.value += 100;
};

a();

在对象中包装原语将使您可以通过引用更新它。然后你只需要从值中读回原语。

重要说明:如果你从对象中解构值它将失去它的by-reference-ness并且就像又是一个原始人。

const a = () => {
  const sum = { value: 0 };
  b(sum);
  console.log(sum.value);
};

const b = ({ value }) => {
  value += 100;
};

a();