js里面的引用传递(数组赋值)

时间:2020-10-21 22:19:45   收藏:0   阅读:35

先看一个例子:

var  a={name:[],list:[]};var list2=[1,3];a.name= list2;a.list= list2;a.list[1]=4;console.log(a.name);

本以为会输出[1,3],实际上输出[1,4],因为name和list都指向了list2的地址:

解决方案:

var  a={name:[],list:[]};var list2=[1,3];a.name= $.extend(true,{},list2);a.list= $.extend(true,{},list2);a.list[1]=4;console.log(a.name);

或者:

var  a={name:[],list:[]};var list2=[1,3];a.name= list2.concat();a.list= list2.concat();a.list[1]=4;console.log(a.name);

concat()表示连接数组,里面可以加值

原文:https://www.cnblogs.com/AduBlog/p/13854171.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!