javascript 地址传递
导读:JavaScript 地址传递在 JavaScript 中,变量是按值传递还是按引用传递的?这是一个常见的问题,也是一个深入的问题。不过,简短的答案是:JavaScript 变量是按值传递的。同时,JavaScript 对象是按引用传递的。...
JavaScript 地址传递
在 JavaScript 中,变量是按值传递还是按引用传递的?这是一个常见的问题,也是一个深入的问题。不过,简短的答案是:JavaScript 变量是按值传递的。同时,JavaScript 对象是按引用传递的。
按值传递是指把变量复制给函数作为参数的过程。按引用传递是指把变量的地址(引用)复制给函数作为参数。
看一个例子:
let x = 10;
function changeValue(v){
v = 20;
}
changeValue(x);
console.log(x);
// 10输出结果为 10,说明按值传递确实是把变量复制后传递的。
再来看一个例子:
let person = {
name: "Tom"}
function changeName(p){
p.name = "Jerry";
}
changeName(person);
console.log(person.name);
// Jerry输出结果是 Jerry,说明按引用传递确实是把变量的地址复制后传递的。这里 p 和 person 指向同一个对象。
还有一个例子:
let a = [1, 2, 3];
function changeArray(arr){
arr.push(4);
}
changeArray(a);
console.log(a);
// [1, 2, 3, 4]输出结果是 [1, 2, 3, 4],说明按引用传递确实是把变量的地址复制后传递的。这里 arr 和 a 指向同一个数组。
总体来说,JavaScript 还是按值传递的,只有在处理对象和数组时才会出现按引用传递的情况。
参考链接:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Functions
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: javascript 地址传递
本文地址: https://pptw.com/jishu/513532.html
