JS中的参数传递详解
在JavaScript中,参数的传递方式可以分为两类:按值传递和按引用传递。
- 按值传递:
在按值传递中,传递给函数的是一个值的副本。这意味着函数内部对参数的任何修改都不会影响到外部的变量。
function increment(x) {
x++;
return x;
}
let count = 1;
let result = increment(count);
console.log(count); // 输出 1,因为increment内部对x的操作不会影响外部的count
console.log(result); // 输出 2
- 按引用传递:
按引用传递是指传递给函数的是一个对象的引用,而不是对象本身的值。这意味着函数内部对参数的修改将影响外部的对象。
function changeName(obj) {
obj.name = 'Alice';
}
let person = {name: 'Bob'};
changeName(person);
console.log(person.name); // 输出 'Alice',因为changeName函数内部修改了对象的属性
在JavaScript中,函数参数是按值传递的,但是如果参数是对象,则实际上传递的是对象的引用(不是对象本身),这被认为是按引用传递。
注意:字符串和数字在JavaScript中是不可变的,当你认为在函数内部修改了它们时,实际上是新创建了一个值。这看起来像是按值传递,但实际上是特殊的按值传递行为。
评论已关闭