[问题] 阵列元素闪线

楼主: Bruce003 (Bruce Chen)   2019-04-30 01:38:32
(Javascript 问题)
https://github.com/BruceChen034020/20190430BugDemo
Card是一个类别,里面有一个函数叫copy。
Card.copy可以把Card物件的所有属性复制,产生新物件。
CardList_init函数里面有一个c阵列,是Card的阵列。
我把c的一些元素加到c的最后面去,但是加到一半c[6]就不见了。
我只是c.push而已,应该不会动到c[6]吧!!!?????
我debug了好久,都不知道为什么会这样
求解,谢谢!!! 万分感激!!!
楼主: Bruce003 (Bruce Chen)   2019-05-01 01:46:00
我把c前面加上var果然就好了,谢谢你们!我终于知道 var 的用途了之前都以为有var跟没var没差,就像分号一样XD不过分号是真的有加跟没加没差吗?
作者: kattte (诚实面对自己吧!)   2019-04-30 23:38:00
阵列元素闪线是什么意思? 我只看到你在第五次的时候把c给清空了
作者: konkonchou (卡卡猫)   2019-04-30 02:07:00
若只是单纯pushc.push(c[i].copy(c.length+1)) 改 c.push(c[i])跑完长度变 253 看是不是你要的
作者: art1 (人,原来不是人)   2019-04-30 02:46:00
你的 c 变量宣告连 var 都没加
作者: konkonchou (卡卡猫)   2019-04-30 03:00:00
c.push(c[i]); c[c.length-1].id=c.length;或楼上说的加上 var 避免以为 local 结果改到 global
作者: pkro12345 (席龙)   2019-04-30 03:22:00
你没宣告变量又把复制和初始阵列都直接叫c就污染了你把card.js里的c变量换成其他名字就好 不过治标不治本
作者: eight0 (欸XD)   2019-05-01 13:59:00
不是,有时可以省略不是全部都可以例 https://repl.it/@eight041/JS-semi-test

Links booklink

Contact Us: admin [ a t ] ucptt.com