引用传递与值传递

2017-08-26  本文已影响0人  devil清风

访问变量分引用传递和值传递

值传递

基本数据类型值的传递,就是将变量的值复制给另一个变量。这两个变量是完全独立的。另一个变量获得的只是一个副本。
举个栗子:



        var num1 = 3;
        var num2 = num1; 

复制前:

num1 3(Number类型)

复制后:

num1 3(Number类型)
num2 3(Number类型)

也就是说,这两个变量可以参与任何操作都互不影响。

引用传递

当从一个变量向另一个变量的复制引用类型的值时,同样也会将存储在变量对象中的值复制一份到新变量分配的空间中。

不同的是这个值的副本是一个指针,而指针指向存储在堆中的对象。所以,复制结束后两个变量将引用同一个对象。因此,其中一个变量被改变,另一个变量也会被影响。


        var obj1 = new Object();
        //引用传递
        var boj2 = obj1;
        obj1.name = "zhangsan";
        console.log(obj2.name);//"zhangsan"

上一篇下一篇

猜你喜欢

热点阅读