我有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不会更新?
有人可以帮忙吗?
谢谢!
答案 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);
编辑:固定功能调用