看板 Web_Design 關於我們 聯絡資訊
(Javascript 問題) https://github.com/BruceChen034020/20190430BugDemo Card是一個類別,裡面有一個函數叫copy。 Card.copy可以把Card物件的所有屬性複製,產生新物件。 CardList_init函數裡面有一個c陣列,是Card的陣列。 我把c的一些元素加到c的最後面去,但是加到一半c[6]就不見了。 我只是c.push而已,應該不會動到c[6]吧!!!????? 我debug了好久,都不知道為什麼會這樣 求解,謝謝!!! 萬分感激!!! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.162.155.245 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1556559515.A.093.html
konkonchou: 若只是單純push 04/30 02:07
konkonchou: c.push(c[i].copy(c.length+1)) 改 c.push(c[i]) 04/30 02:08
konkonchou: 跑完長度變 253 看是不是你要的 04/30 02:08
art1: 你的 c 變數宣告連 var 都沒加 04/30 02:46
konkonchou: c.push(c[i]); c[c.length-1].id=c.length; 04/30 03:00
konkonchou: 或樓上說的加上 var 避免以為 local 結果改到 global 04/30 03:01
pkro12345: 你沒宣告變數又把複製和初始陣列都直接叫c就污染了 04/30 03:22
pkro12345: 你把card.js裡的c變數換成其他名字就好 不過治標不治本 04/30 03:23
kattte: 陣列元素閃線是甚麼意思? 我只看到你在第五次的時候把c 04/30 23:38
kattte: 給清空了 04/30 23:38
Bruce003: 我把c前面加上var果然就好了,謝謝你們! 05/01 01:46
Bruce003: 我終於知道 var 的用途了 05/01 01:46
Bruce003: 之前都以為有var跟沒var沒差,就像分號一樣XD 05/01 01:47
Bruce003: 不過分號是真的有加跟沒加沒差嗎? 05/01 01:48
eight0: 不是,有時可以省略不是全部都可以 05/01 13:59
eight0: 例 https://repl.it/@eight041/JS-semi-test 05/01 13:59