实际开发中,我们经常会使用JavaScript函数来处理大量的数据。这时候,函数参数引用传递就变得尤为重要。因此,在学习JavaScript函数时,必须了解参数的引用传递。
引用传递是指将变量作为参数传递给函数时,传递的是该变量所对应的值在内存中的地址。这种方式可以实现函数内部对变量的修改。
function change(obj) { obj.prop1 = "hello"; } var myObj = { prop1: "world" }; change(myObj); console.log(myObj.prop1); // 输出"hello"
在上面的代码中,我们将一个对象作为参数传递给函数。在函数内部,我们更新了对象属性的值并将其输出。当调用该函数时,传递的是对象在内存中的地址。这意味着可以在函数内部修改对象属性的值。
不过要注意的是,在JavaScript中,基本数据类型是按值传递的,而非引用传递。
function change(num){ num=2; console.log(num); } var num=1; change(num); console.log(num); // 输出1
在这个例子中,我们将一个变量传递给函数。然后在函数内部,我们将该变量的值修改为2。但是当在函数外部输出结果时,变量的值仍然为1。这是因为传递的是该变量所对应的值,而不是在内存中该值的地址。
如果想在函数内部修改基本数据类型的值,可以使用“+”运算符来实现。
function change(num) { num += 2; console.log(num); } var num = 1; change(num); console.log(num); // 输出1
在这个例子中,我们将变量传递给函数。然后在函数内部,我们使用“+”运算符将该变量的值增加2。当在函数外部输出结果时,变量的值不会受函数内部的修改影响。
在总结一下,JavaScript函数参数的引用传递可以在函数内部修改对象的属性值。但是,当传递基本数据类型时,函数内部修改变量的值不会影响到函数外部。
需要注意的是这里所说的“修改”是指修改变量的属性或内容,而不是替换变量。