javascript - 为什么当我在参数传递过程中增加函数值时,函数却收到原始值?

标签 javascript function

假设这是我生成对象的工厂函数。

const generateObjectWithId = (id,value) => (
 {id,value}
);

我在生成对象之前声明了一个 Id,然后使用 ++ 递增它。

let currentId = 0;
const object = generateObjectWithId(currentId++,"sample");

结果:

console.log(currentId) => 1
console.log(object) => {id:0,value:"sample"}

currentId增加到 1 但 object我从工厂收到的函数的 id 为 0。

我已经通过在传入参数之前增加 currentId 来修复它,并且现在可以正常工作。

我的修复:

let currentId = 0;
currentId++; //or currentId = currentId + 1;
const object = generateObjectWithId(currentId,"sample");

但我需要有人帮助我解释为什么在参数内递增不起作用。

非常感谢。

最佳答案

currentId++,这会在传递后增加计数器 而++currentId增加计数器然后传递它

关于javascript - 为什么当我在参数传递过程中增加函数值时,函数却收到原始值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63445081/

相关文章:

javascript - 使弹出窗口在单击鼠标的位置打开

javascript - 如何用一些已编译的 HTML 替换元素的值

javascript - 剖析站点以克隆 AJAX 请求并获取 XML

Javascript使函数一个接一个地执行

javascript - 如何通过单击上下文菜单来调用预定义函数?

c++ - 为什么以下代码中 "C"的值会发生变化?

javascript - 如何在 JavaScript 中为特殊条件设置正则表达式?

javascript - 检查 jQuery 中是否为 undefined 和 null

python - selenium - WebDriverWait().until(myFunc) 可以使用 WebDriver 之外的函数吗?

c - 在 C 中将代码划分为函数