[問題] 關於JS在實做class的手法

看板Ajax作者 (★閃亮數學推理★)時間17年前 (2008/09/10 14:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/5 (看更多)
由於JS在實做class時 似乎是沒有static的 所以不知道各位是怎麼處理這個問題 因為當class利用到 function Snack(name){ this.name = name; ..... } Snack.prototype.GO = function() { this.KEY do something ..... setTimeout(this.name+".GO()",this.velocity); }; Snack.prototype.ChangeKey(event){ change this.KEY .... } Snack.prototype.Setup(){ document.onkeypress = this.ChangeKey; } var Gsnack = new Snack("Gsnack"); Gsnack.setup(); 當網頁在執行時因為keyCode改變了 所以應該會改變 Gsnack.KEY 進而使得當Gsnack.GO()在執行的時候有所改變 但事實上是 似乎setTimeout根本不管我所宣告的global variable 自行copy一份進去執行 但又不完全 因為完全的話應該會copy到改變過後的KEY 所以我的折衷方案改成把KEY拿出去 變成global才解決 但事實上如果這在C++ 我可以用static解決掉他 不知道是某有人遇到同樣的問題呢? 以下是全部的code http://ntuaha.myweb.hinet.net/test4.html 這是還有問題的版本 http://ntuaha.myweb.hinet.net/test3.html 這是沒有問題 但只是用一般方式處理的 -- Every thing can be wrong unless you can proof it is true. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.225.131.86
文章代碼(AID): #18ns_L14 (Ajax)
文章代碼(AID): #18ns_L14 (Ajax)