You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript:如何在子函数中修改父函数变量并返回更新值?

解决子函数修改父级变量的问题

你当前代码的问题在于,wuzi是数字这类基本类型,传递给函数时是值传递——函数内部的wuzi只是原变量的一个副本,修改它不会影响外部的原变量。下面是几种可行的解决方法:

方法一:让函数返回修改后的值,外部重新赋值

这是最清晰的写法,符合函数的单一职责原则:

let wuzi = 20;
console.log(wuzi); // 20
wuzi = testWuzi(wuzi);
console.log(wuzi); // 30

function testWuzi(wuzi) {
    return 30; // 也可根据实际逻辑返回动态修改后的值
}

方法二:用对象包裹变量(引用类型传递)

基本类型是值传递,而对象是引用传递,函数内部修改对象的属性会直接影响外部的原对象:

let obj = { wuzi: 20 };
console.log(obj.wuzi); // 20
testWuzi(obj);
console.log(obj.wuzi); // 30

function testWuzi(obj) {
    obj.wuzi = 30;
}

方法三:直接访问外部作用域的变量(不推荐)

如果函数和变量在同一个作用域,可以不用传参直接修改,但这种写法会提升代码耦合度,降低可读性,尽量少用:

let wuzi = 20;
console.log(wuzi); // 20
testWuzi();
console.log(wuzi); // 30

function testWuzi() {
    wuzi = 30;
}

内容的提问来源于stack exchange,提问作者EGxo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:05:26