作者ckaha (★閃亮數學推理★)
看板Ajax
標題[問題] 關於JS在實做class的手法
時間Wed Sep 10 14:57:22 2008
由於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 w
rong unless you can proof it is
true.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.131.86