用JavaScript描述按值传递和按引用传递?
传递值
在 由值通,一个功能是通过直接传递变量作为参数的值调用。在函数内部更改参数不会影响从函数外部传递的变量。Javascript总是按值传递,因此更改变量的值永远不会更改基础基元(字符串或数字)。
在下面的示例中,变量'a'分配了值1,但是在函数'change'内部它分配了值2。由于javascript始终是按值传递,因此显示的输出将为'1',而不是'2'。
示例
<html><body>
<script>
let a = 1;
let change = (val) => {
val = 2
}
change(a);
document.write(a);
</script>
</body>
</html>
输出结果
1
通过参考
在某些情况下,传递地址而不是传递参数来调用函数。那时,更改函数内部的值会影响从函数外部传递的变量。这称为参考传递。在javascript中,数组和对象大多遵循引用传递。
在下面的示例中,在函数“ change”之外声明了一个名为“ a”的对象。如示例2所示,此处应注意变量'a'已被突变但未分配值2。在发生突变时 会发生引用传递。
示例1
<html><body>
<script>
let a = {num:1};
let change = (val) => {
val.num = 2
}
change(a);
document.write(JSON.stringify(a));
</script>
</body>
</html>
输出
{"num":2}
在下面的示例中,变量'a'分配 了值2 ,而不是突变。因此,按值进行传递,并且不会对外部变量产生影响。
示例2
<html><body>
<script>
let a = {num : 1};
let change = (val) => {
val = {num :2};
}
change(a);
document.write(JSON.stringify(a));
</script>
</body>
</html>
输出
{"num":1}
以上是 用JavaScript描述按值传递和按引用传递? 的全部内容, 来源链接: utcz.com/z/343530.html