JavaScript变量 - 新的var更改原始值

时间:2014-02-17 23:55:33

标签: javascript

自从我触及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.poolMop.oneAtime.p,即使后者被指定为Mop.pool值,Mop.pool也不会再次感动。 Mop.pool必须保持不变。

我可以听到有人在嘲笑这一定是多么容易 - 但我无法理解为什么两个数组都受到splice()方法的影响!范围,结束,我敢打赌,我已经尝试了所有我能想到的......

0 个答案:

没有答案