美文网首页
对象引用

对象引用

作者: 沐浴残秋 | 来源:发表于2016-07-15 10:14 被阅读0次

    concat方法拷贝原数组

    对象引用(非对象直接量):concat方法会复制对象引用放到组合的新数组里,原数组和新数组中的对象引用都指向同一个实际的对象,所以,当实际的对象被修改时,两个数组也同时被修改.

    第一个栗子

    var arr1 = [1, 2, {a: 'test'}]
    var arr2 = ['a', 'b', 'c']
    
    var output = arr1.concat(arr2)
    console.log(output) // output[2].a == 'test'
    setTimeout(function(){
           arr1[2].a = 'has changed'
           console.warn(output)  //output[2].a == 'has changed'
    }, 5000)
    

    第二个栗子

    var arr1 = [1, 2, 3]
    var arr2 = ['a', 'b', 'c']
    
    var output = arr1.concat(arr2)
    console.log(output) 
    setTimeout(function(){
         arr1[2] = 99
         console.warn(output)      //output值并不会改变
     }, 5000)
    

    面试时被问到过的一道题,记忆犹新啊(为什么我没早看到这篇文章)。变量、对象傻傻搞不清楚。

    相关文章

      网友评论

          本文标题:对象引用

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