在JavaScript中,参数传递是通过值传递的方式。然而,当参数是一个对象或数组时,实际上传递的是对象或数组的引用,而不是对象或数组本身。因此,在这种情况下,可以说参数以引用的方式传递。
以下是一个简单的示例:
function changeValue(obj) {
obj.name = "Tom";
}
const person = {
name: "Jerry",
};
changeValue(person);
console.log(person.name); // 输出 "Tom"
在这个例子中,我们将一个对象作为参数传递给 changeValue
函数。在函数内部,我们修改了对象的属性值。然后,我们在控制台中输出了对象的属性值,发现它已经被修改了。这是因为我们传递的是对象的引用,而不是对象本身。
需要注意的是,如果我们将基本数据类型(如数字、字符串、布尔值等)作为参数传递,它们会以值的方式传递。这意味着在函数内部修改参数的值不会影响到函数外部的变量。
例如:
function changeValue(num) {
num = 10;
}
const number = 5;
changeValue(number);
console.log(number); // 输出 5
在这个例子中,我们将一个数字作为参数传递给 changeValue
函数。在函数内部,我们将参数的值修改为10。然后,我们在控制台中输出了原始变量的值,发现它没有被修改。这是因为基本数据类型是以值的方式传递的,函数内部的修改不会影响到函数外部的变量。
领取专属 10元无门槛券
手把手带您无忧上云