美文网首页
javascript 引用

javascript 引用

作者: 箫筱乐 | 来源:发表于2018-10-16 12:04 被阅读0次

基本类型

number,string都是基本数据类型,而基本类型存放在栈区,访问时按值访问,赋值时按照普通方式赋值,当基本类型赋值的时候,赋的是实际的值,a和b是没有关联的b由a赋值得到,相互独立。

    var a = 10;
    var b = a
    b=2
    console.log(a)    //10
    console.log(b)    //2

引用类型

对象和数组是通过引用来赋值的,引用类型指的是对象,可以拥有属性和方法,并且我们可以修改属性和方法。引用对象存储的方式是:在栈中存放对象变量标识名称和该对象在堆中存放的地址,在堆中存放的数据。
对象使用的是引用赋值。当我们把对象赋值给一个新的变量时,赋的其实是该对象在堆中的地址,而不是堆中的数据,也就是两个对象指向的是一个存储空间,无论哪个对象发生变化,另一个也会随之改变,两个对象是联动的

    var arr = [1,2]
    var new_arr = arr
    new_arr[0] = 5
    console.log(arr)    //[2,5]
    console.log(new_arr)  //[2,5]

对此对象调用

对象调用函数this的指向对象,this.a就等于2如果多次调用,对象属性引用链只有上一层或者说是最后一层在调用位置中起作用。

     function fn(){
             console.log(this.a)
     }
     var obj = {
          a:2,
          foo:fn
      }
      var obj1 = {
           a:1,
           obj:obj
      }
   obj1.obj.fn()   //2

相关文章

网友评论

      本文标题:javascript 引用

      本文链接:https://www.haomeiwen.com/subject/yzzczftx.html