登录 主页

JavaScript pass by reference(传地址:按引用传递)

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。

返回>>

登录

请登录后再发表评论。

评论列表:

目前还没有人发表评论