函数参数按值传递
示例
示例 1
javascript
// 题目: 查看打印结果
function swapAB(a, b) {
let temp = a;
a = b;
b = temp;
}
let a = 1;
let b = 2;
swapAB(a, b);
console.log(a, b);
let c = { age: 1 };
let d = { age: 2 };
swapAB(c, d);
console.log(c, d); // { age: 1 } { age: 2 }
// A: 1 2
// B: 2 1
// 答案:A示例 2
javascript
let obj1 = {
age: 1,
name: "小白",
};
let obj2 = {
age: 2,
name: "小黑",
};
function change(a, b) {
let temp = a.age;
a.age = b.age;
b.age = temp;
}
change(obj1, obj2);
console.log(obj1.age, obj2.age); // 2 1
总结
函数参数传递是值传递还是引用传递?
在 JavaScript 中,函数参数传递总是按值传递(pass by value),但对于对象类型(包括数组、函数等)来说,传递的是值的引用副本,这有时会让人误以为是按引用传递。
函数内部对参数的修改不会影响外部变量的值。
