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

如何在JavaScript中让函数修改外部传入的两个变量的值?

实现方法(JavaScript修改外部数字变量)

当然有可行方法,因为数字是按值传递,没法直接修改原始变量,但可以通过传递引用类型的容器或者返回修改后的值来间接实现,下面是几种常用方案:

1. 返回包含新值的对象

把两个变量的新值打包成对象返回,外部用返回值重新赋值原始变量:

function processAndUpdate(a, b) {
  // 这里写你的其他业务逻辑
  const newA = a + 10;
  const newB = b * 2;
  return { updatedA: newA, updatedB: newB };
}

// 使用示例
let num1 = 5;
let num2 = 3;
const result = processAndUpdate(num1, num2);
num1 = result.updatedA;
num2 = result.updatedB;
console.log(num1, num2); // 输出 15, 6

2. 用数组包裹变量(传递引用)

数组属于引用类型,函数里修改数组元素会直接影响外部的原始数组:

function processAndUpdate(arr) {
  // 其他业务逻辑
  arr[0] = arr[0] + 10;
  arr[1] = arr[1] * 2;
}

// 使用示例
let nums = [5, 3];
processAndUpdate(nums);
console.log(nums[0], nums[1]); // 输出 15, 6

3. 用对象包裹变量(传递引用)

和数组逻辑一致,对象也是引用类型,修改对象属性会同步到外部的原始对象:

function processAndUpdate(obj) {
  // 其他业务逻辑
  obj.num1 = obj.num1 + 10;
  obj.num2 = obj.num2 * 2;
}

// 使用示例
let numObj = { num1: 5, num2: 3 };
processAndUpdate(numObj);
console.log(numObj.num1, numObj.num2); // 输出 15, 6

本质上这些方法都是绕开值传递的限制:要么让函数返回新值由外部主动赋值,要么把原始变量放到引用类型容器里,让函数通过修改容器内容间接改变外部变量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 11:15:33