jQuery - 变量不"更新"增量

时间:2014-09-28 20:59:27

标签: javascript jquery

我有2个变量

var firstThumb = 2;             
var thumbRel = "0" + firstThumb;

这设置了我的第一个缩略图rel属性rel="02"的数字 - 我喜欢看起来不错的东西,有15个拇指所以它只是使我的代码排队并且看起来更好。这就是0的原因。

我有一个功能。

function thumbIncrease() {
      firstThumb++
   };

这是在一个间隔内运行 - 每2秒钟。

setInterval(function(){
   thumbIncrease();
   console.log(firstThumb);
   console.log(thumbRel);
}, 2000);

firstThumb的控制台日志按预期增加 - 每2秒钟增加2,3,4,5等。

但是 - thumbRel的控制台日志每次都停留在02并且不会增加

所以我认为当firstThumb出于某种原因时,thumbRel不会更新?

有人可以帮忙吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

试试这个:http://jsfiddle.net/csdtesting/o7x1smq5/

var firstThumb = 2;             
var thumbRel = "0"; 

function thumbIncreases() {
      firstThumb++;
      thumbRel = "0" +firstThumb;
   };

setInterval(function(){
   thumbIncreases();

   console.log(firstThumb);
   console.log(thumbRel);
}, 2000);

答案 1 :(得分:2)

您已将thumbRel定义为02,并且您不会在任何地方直接更新它。 引用,但读取和使用。为了更新两者,这有用吗?

function thumbIncrease() {
      firstThumb++;
      thumbRel = "0" + firstThumb;
};

答案 2 :(得分:1)

当你说

var thumbRel = "0" + firstThumb;

Javascripts使用firstThumb的当前值来计算thumbRel,在本例中为“02”。但是,在此之后,变量完全彼此分离。它的行为就像你写道:

var thumbRel = "02";

大多数编程语言都是这样的。如果您使用=符号为某个值分配值,则在您为其指定其他值之前,它将保持不变。

如果你想根据firstThumb的值改变值,你应该考虑使用函数而不是变量,如下所示:

var firstThumb = 2;
var thumbRel = "0" + firstThumb;

function thumbRel () {
  return "0" + firstThumb;
}

function thumbIncrease() {
  firstThumb++
};

setInterval(function(){
   thumbIncrease();
   console.log(firstThumb);
   console.log(thumbRel());
}, 2000);

编辑:固定功能调用