javascript中,var arr1=arr=[ ]与var arr1=[ ];var arr2=[ ]为什么效果不一样?

在下面的这段拖拽回放的demo的代码中,
https://jsfiddle.net/20170808...
刚开始我用来存放x轴坐标和y轴坐标是这样写的↓

var arrX=arrY=[];

结果发现这样写有问题,第一次能完成拖拽回放功能,第二次开始就无法正常回放了,后来改成如下写法才行

var arrX=[];
var arrY=[];

这是为什么呢?有谁能通俗易懂地给我讲解下吗?

阅读 3.6k
5 个回答

var arrX=arrY=[];
这样两个变量指向的是同个地址,你在mouse move中对arrX和arrY push的时候,实际上只有一个数组,这两个要分开存放才行,而且,在按钮点击函数里面,这样只是对同个数组反转两次,出来的效果是错的。

var arrX=arrY=[]; 一个房间贴了两个门牌号。

var arrX=[]; var arrY=[]; 两个房间两个门牌号。

一个数组和二个数组咯

楼上说的没错,数组那样赋值就是引用了

var arrX=arrY=[];这句代码的意思是:var arrX;var arrY=[];
所以你arrX不是一个数组变量,只是变量,所以调用push命令会导致那些x坐标存不进去,所以回放会出现问题。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题