gpt4 book ai didi

javascript - JS 函数不更新对象

转载 作者:行者123 更新时间:2023-11-28 11:52:51 24 4
gpt4 key购买 nike

我简化了我一直在研究的一个函数,但是当该函数运行时,console.log 仍然等于 0。我做错了什么会导致对象无法更新?

var x = { y: 0 };

var z = 5;

function addStrokesToScore(a, b) {
a += b;
}

addStrokesToScore(x.y, z);

console.log(x.y);

最佳答案

addStrokesToScore(x.y, z)x.yz传递给函数,但它并没有不传递对属性/变量的引用。您无法更改函数内的属性/变量;没有返回它的链接。

这里的正常做法是返回新值:

function addStrokesToScore(a, b) {
return a + b;
}

x.y = addStrokesToScore(x.y, z);

或者,您可以传入对 x 对象的引用,并使用该引用来更新其 y 属性:

function addStrokesToScore(obj, b) {
obj.y += b;
}

addStrokesToScore(x, z);

但一般来说,除非有充分的理由,否则您应该改用return 选项。

关于javascript - JS 函数不更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32344467/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com