JavaScript 参数传递367


在 JavaScript 中,参数可以通过两种方式传递给函数:值传递和引用传递。

值传递

值传递是一种将参数的值传递给函数的方式。当使用值传递时,函数会收到参数值的副本。这意味着函数对参数所做的任何更改都不会影响原始变量的值。
function addNumbers(a, b) {
a += 10; // 不会改变原始变量的值
b += 20; // 不会改变原始变量的值
}
let x = 10;
let y = 20;
addNumbers(x, y);
(x); // 输出:10
(y); // 输出:20

在上面的示例中,addNumbers 函数使用值传递。当函数对 a 和 b 执行加法操作时,这些操作仅影响函数内的局部副本。原始变量 x 和 y 的值保持不变。

引用传递

引用传递是一种将参数的引用传递给函数的方式。当使用引用传递时,函数会收到一个指向原始变量的引用。这意味着函数对参数所做的任何更改都会影响原始变量的值。

JavaScript 中没有直接的引用传递机制。但是,我们可以通过以下方法模拟引用传递:
使用对象作为参数
使用数组作为参数

使用对象



function modifyObject(obj) {
= "John"; // 改变原始对象的值
}
let person = { name: "Mary" };
modifyObject(person);
(); // 输出:John

在上面的示例中,modifyObject 函数使用对象作为参数。当函数修改对象的 name 属性时,它也会改变原始对象 person 的 name 属性。

使用数组



function modifyArray(arr) {
("three"); // 改变原始数组的值
}
let arr = ["one", "two"];
modifyArray(arr);
(arr); // 输出:["one", "two", "three"]

在上面的示例中,modifyArray 函数使用数组作为参数。当函数向数组中添加元素时,它也会改变原始数组 arr 的值。

选择值传递或引用传递

在决定何时使用值传递或引用传递时,请考虑以下因素:
函数的意图:函数是否应该修改原始变量?如果是,则使用引用传递。否则,使用值传递。
变量类型:如果变量是基本类型(例如数字或字符串),则使用值传递。如果变量是对象或数组,则可以使用值传递或引用传递,具体取决于函数的意图。
性能:值传递比引用传递更快,因为函数无需跟踪原始变量的引用。

一般来说,在没有明确需要修改原始变量的情况下,建议使用值传递。这有助于防止意外的更改和副作用。

2024-12-21


上一篇:JavaScript URL 参数:解析查询字符串

下一篇:如何在 JavaScript 中传递参数?