如何通过引用递增变量?
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();
如何通过引用递增变量:
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();