如何通过引用增加变量:
let sum = 0;
this.rows.forEach(model => {
sum += model.hours;
});
return sum;
我需要做一些事情:
this.rows.forEach(model => {
let &sum += model.hours;
});
答案 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();