[問題] 關於JS在實做class的手法
由於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
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 5 篇):
Ajax 近期熱門文章
PTT數位生活區 即時熱門文章