如何通过引用增加变量?

时间:2018-04-03 17:55:00

标签: javascript typescript typescript2.0

如何通过引用增加变量:

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

我需要做一些事情:

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

1 个答案:

答案 0 :(得分:3)

你不能......至少不是直接的。基元总是在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();