自从我触及JavaScript以来已经有一段时间了,但有些东西让我感到沮丧,简单我知道我应该知道它,但它让我在过去一小时内感到非常头痛!
方案;
Mop = {
els : [],
pool : [],
generate : function(){
for (var i=0; i<Mop.els.length; i++){
Mop.pool.push(i)
}
},
oneAtime : {
p : Mop.pool,
runit : function(){
timerID = window.setTimeout(function(){
Mop.show()
});
}
},
show : function(){
var p = Mop.oneAtime.p;
var r = Math.floor(p.length * Math.random());
p.splice(r,1);
},
init : function(){
Mop.els = $(".cells");
Mop.generate();
Mop.oneAtime();
}
}
Mop.init()
一个冗长的方式来说这是变量分配的问题。但我想我会展示背景。
简而言之,调用Mop.show()
会影响数组Mop.pool
和Mop.oneAtime.p
,即使后者被指定为Mop.pool
值,Mop.pool
也不会再次感动。 Mop.pool
必须保持不变。
我可以听到有人在嘲笑这一定是多么容易 - 但我无法理解为什么两个数组都受到splice()方法的影响!范围,结束,我敢打赌,我已经尝试了所有我能想到的......