作者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