2024-06-26 04:17PM
JavaScript中的按引用传递(pass by reference)是指当你将一个对象(Object)作为参数传递给一个函数时,实际上是将该对象的引用(地址)传递给了函数。这种传递方式主要适用于对象类型,包含:Object,Array,Function
按引用传递意味着函数内部对参数的修改会影响到原始对象 .
例如 1:
在浏览器开发者工具中:
1)定义:my_array = [1, 2, 3],输出:Array(3) [ 1, 2, 3 ]
2)定义:b = my_array ,输出:Array(3) [ 1, 2, 3 ]
3)运行 b,输出:Array(3) [ 1, 2, 3 ]
4)使用 b.pop,输出:function pop()
5)运行 b.pop(),输出 :b
6)运行 b,输出:Array [ 1, 2 ]
7)运行my_array,输出:Array [ 1, 2 ]
这是因为在JavaScript中,当我们传递一个数组类型(如Array)作为参数,实际上是将该数组的引用(地址)传递给了b。在对b进行的修改会直接影响到原始数组Array。
例如 2:
let obj = { count: 1 };
function increment(o) {
o.count = o.count + 1;
}
increment(obj);
console.log(obj.count); // Output: 2
1)我们创建了一个对象obj并赋值为{ Count: 1 };
2)我们定义了一个函数increment,它接受一个参数1;
3)当我们调用increment(obj)时,obj的引用(地址)被传递给了o;
4)在函数内部,我们对o.count进行了修改,将其增加了1;
5)由于o和obj指向的是同一个对象,因此当我们在函数外部打印obj.count时,它的值已经被修改为1;
这是因为在JavaScript中,当我们传递一个对象类型(如Object)作为参数,实际上是将该对象的引用(地址)传递给了函数。在函数内部对o的修改会直接影响到原始对象obj。
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论