nodejs 参数引用传递
时间: 2023-10-15 21:02:35 浏览: 42
在 Node.js 中,函数参数的传递方式可以是值传递或引用传递。
当参数是基本数据类型(如数字、字符串、布尔值等)时,会采用值传递的方式。这意味着在函数内部修改参数的值不会影响到原始值。
例如:
```
function add(a, b) {
a = a + 1;
b = b + 1;
console.log('a:', a); // 输出 4
console.log('b:', b); // 输出 6
}
let x = 3;
let y = 5;
add(x, y);
console.log('x:', x); // 输出 3
console.log('y:', y); // 输出 5
```
当参数是对象或数组时,会采用引用传递的方式。这意味着在函数内部修改参数的属性或元素会影响到原始值。
例如:
```
function changeArray(arr) {
arr[0] = 10;
arr[1] = 20;
console.log('arr:', arr); // 输出 [10, 20, 30]
}
let arr1 = [1, 2, 3];
changeArray(arr1);
console.log('arr1:', arr1); // 输出 [10, 20, 30]
```
需要注意的是,虽然对象和数组是引用类型,但是在函数内部给参数重新赋值不会影响到原始值。
例如:
```
function changeObject(obj) {
obj = { name: 'Lucy', age: 20 };
console.log('obj:', obj); // 输出 { name: 'Lucy', age: 20 }
}
let obj1 = { name: 'Tom', age: 18 };
changeObject(obj1);
console.log('obj1:', obj1); // 输出 { name: 'Tom', age: 18 }
```
总结起来,Node.js 中的参数传递方式取决于参数的数据类型。对于基本数据类型,采用值传递方式;对于对象和数组,采用引用传递方式。